環境 VC++6.0 SDK
ダイアログベースでOpenGLを表示するビューを作成しています。
ダイアログのサイズを変更した際にビューのサイズも変更しているのですが、
ビューのサイズの変更をダイアログのサイズ変更後(マウスのボタンを離した時)
だけにしたいのですがうまくいきません。
よろしくお願いします。
WM_SIZEでやればいいのではないでしょうか
条件付けとかはWM_SIZEがきたときにでも
WM_SIZINGだった。すみません。
サイズ変更後だからWM_SIZEでよいのでは?
WM_SIZEはドラッグ中も飛んでくる場合があるようなので
WM_SIZINGでLボタンを見てればいいかなと思いました。
>WM_SIZEはドラッグ中も飛んでくる場合があるようなので
ドラッグ中にウインドウの内容を表示するかどうかは
ユーザーの設定次第なので、アプリ側で意識する必要は
ないんじゃないでしょうか。
質問内容に「マウスのボタンを離した時だけにしたい」
と、書いてたのであえてアプリで意識したいのだと思いました。
そうでないのならsubaruさんのおっしゃるとおりですね。
レスありがとうございます。
シロートさんのおっしゃる通りWM_SIZE内で処理を行っているのドラッグ中も飛んできます。
で、WM_SIZINGを使ったところ全く飛んでこず現在原因を調査中です。
自分で調べたところ
画面のプロパティ→効果→ドラッグ中にウィンドウの内容を表示するのチェックを
切ると期待していた結果が得られました。
WM_SIZINGに飛んでくればこの設定に関わらず期待している結果が得られそうなのです
が・・・。
すみません。サイズ変更後の意味を読み間違えてました。
シロートさんの方法でそれっぽい動作すると思いますが
メニューからサイズ変更された場合はどうなるかわかりません。
WM_EXITSIZEMOVEメッセージで処理してみては
いかがでしょうか?
MFCのEXEで空のダイアログを作って試したところWM_SIZINGでうまくいきました。
私の作ったものは既存のツールのプラグインとしてDLL形式で作っています。
うまくいくものといかないものの違いがこれぐらいしか浮かびませんでした。
ツール側にも問い合わせてみようと思います。
Kerryさんの方法が有効だと思います。
ただし最大化ボタンなどがある場合は
別途処理する必要があるのでご注意を。
タスクバーから
上下に並べて表示/左右に並べて表示
とかされた場合は対処できないカモ。。。
ツールサイドに問い合わせたところやはりWM_SIZINGに対応していないようです。Kerryさんの
おっしゃったWM_EXITSIZEMOVEも受け取れませんでしたので確認していませんが同じようです。
質問の件はこのツール上で現段階では実現できませんが勉強になりました。
どうもありがとうございました。