
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
このような場合は、2ステップに分けてプログラムします。
WM_SIZEのハンドラ関数(OnSize)にコントロール配置変更処理を記述するのではなく、まず、コントロール配置関数(例えば、void LayoutCtrls();)を作成してください。これは、現在OnSize関数に記述されている内容をLayoutCtrls()関数にコピーすればOKでしょう。
このような処理関数を作成したら、プログラム中で、LayoutCtrls()を呼び出せば、自動的にコントロールの再配置が行われるようになりますよね。。また、当然、WM_SIZEメッセージが発生したときにもコントロールの再配置を行う必要がありますから、OnSize関数内からもLayoutCtrls()を呼び出します。
以上の仕組みでOKでしょう。
ちなみに、起動時にコントロールの配置を行いたい場合は、
Viewの場合 : OnInitialUpdate関数の末尾
Dialogの場合 : OnInitDialog関数の末尾
で、LayoutCtrls()を呼び出します。
No.2
- 回答日時:
WM_SIZEはご存知のとおり、ウィンドウのサイズを変更した(=リサイズした)ときに発生するメッセージですから、サイズを変更せずに発生させるのは普通にはできそうにありません。
本来とは異なるサイズでウィンドウを作成しておき、最初に本来のサイズにMoveWindowしてみては。
もっとも、いろいろ細工を考えるのは勉強にはなりますが「いちばん良い方法」とは言えません。いちばん良い方法は、WM_SIZEだけでリサイズするのをやめて、ウィンドウ作成時にもWM_SIZEなしでリサイズすることです。
No.1
- 回答日時:
MoveWindowでウィンドウの大きさを変更すればWM_SIZEは発生します。
SW_SHOW状態でウィンドウの大きさを変更すると、タイミングによってはちらついてしまうと思うので、その場合はSW_HIDEにしてから変更しましょう。
この回答への補足
色々やってみましたが、回答していただいたように
親ウインドウを本当にリサイズする方法しかWM_SIZEを
発生させる方法が分かりませんでした。
本当にリサイズする以外によい方法はないのでしょうか?
本当にリサイズした場合はちらつきが目立ちます。
SW_HIDEもやってみましたが、コントロールがちらついて
しまいました。ちらつきに関しては頑張ればできそうですが
とても大変そうなので、リサイズせずにWM_SIZEが発生する
という方法を探しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのコントロールツール...
-
DateTimePickerでに年月までし...
-
コントロールの書式設定で、“コ...
-
コモンダイアログコントロール...
-
「アイテムは収集されました」...
-
エクセルで作った新しいウイン...
-
マインクラフト(pc版)で座標...
-
VBでのハンドルの使い方
-
[VB.net] DataGridViewの列ヘッ...
-
メッセージボックスを大きくす...
-
ゲームでは結局どっちが良いの?
-
検索の画面がでなくなってしま...
-
jw-cadにBMP画像を貼り付けまし...
-
C言語による楕円関数の記述
-
Excelの上下を固定したい
-
C# ウィンドウハンドルの取得
-
グラフの交点の求め方(Excel)
-
非アクティブのウィンドウを最...
-
ボタンの表示の色、フォントを...
-
【C#】別フォームも同時に閉じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
DateTimePickerでに年月までし...
-
スピンボタンを右クリックして...
-
コモンダイアログコントロール...
-
連続で印刷すると画像が更新さ...
-
ActiveXコントロールを.NETにイ...
-
VB6でタブコントロールが見つか...
-
EXCELVBA リストボックスで選択...
-
エクセル - リストボックスのマ...
-
フォームでPDFを表示させた...
-
警告表示を非表示にしたい
-
Accessのタブコントロールを2...
-
ワードのドロップダウンリスト
-
MFC・ダイアログベースで、ダイ...
-
リストコントロール(MFC or API...
-
リストボックスの同期
-
プロパティシートのタブの名前...
-
Excel VBAでのMultipageの選択
-
TabControlとToolBarの背景色変更
おすすめ情報