画面のサイズを小さくした時に、自作のプログラムが画面からはみ出ないようにするにはどうしたらよいでしょうか。開発環境はVC++6です。再描画(ON_WM_ERASEBKGND)を利用して、座標位置の修正を検討したのですが、どうも800×600にすると完全に外にでてしまうためうまくいきません。

アドバイスなどいただきたくよろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/01/26 12:34:40
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:SevenS No.2

回答回数51ベストアンサー獲得回数3

ポイント26pt

http://www.winapi-database.com/Message/WM/WM_DISPLAYCHANGE.html

「アプリケーションが動いている状態で、解像度が変更されたら」ということならWM_DISPLAYCHANGEを捕まえればいいと思います。MFCでは対応するメソッドはないので自作することになりますが。

LPARAMに幅と高さが格納されるようなので、これに合わせてSetWindowPosなどをすればよろしいかと思います。

id:harunoharuno

教えていただいたサイト見ましたが、

かなり便利そうですね。ありがとうございます。

メッセージの取得処理追加は久しぶりだったので

方法が思い出せず、苦労しましたがなんとか出来ました。

2007/01/26 12:25:31

その他の回答1件)

id:fackt No.1

回答回数4ベストアンサー獲得回数1

ポイント44pt

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...

WM_DISPLAYCHANGEでどうでしょう?

id:harunoharuno

わーいこんな便利なメッセージがあったんですねー。早速試してみます。

2007/01/25 18:47:12
id:SevenS No.2

回答回数51ベストアンサー獲得回数3ここでベストアンサー

ポイント26pt

http://www.winapi-database.com/Message/WM/WM_DISPLAYCHANGE.html

「アプリケーションが動いている状態で、解像度が変更されたら」ということならWM_DISPLAYCHANGEを捕まえればいいと思います。MFCでは対応するメソッドはないので自作することになりますが。

LPARAMに幅と高さが格納されるようなので、これに合わせてSetWindowPosなどをすればよろしいかと思います。

id:harunoharuno

教えていただいたサイト見ましたが、

かなり便利そうですね。ありがとうございます。

メッセージの取得処理追加は久しぶりだったので

方法が思い出せず、苦労しましたがなんとか出来ました。

2007/01/26 12:25:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません