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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/01/25 17:26:49
  • 終了:2007/01/26 12:34:40

ベストアンサー

id:SevenS No.2

SevenS回答回数51ベストアンサー獲得回数32007/01/25 18:27:22

ポイント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

fackt回答回数4ベストアンサー獲得回数12007/01/25 18:07:22

ポイント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

SevenS回答回数51ベストアンサー獲得回数32007/01/25 18:27:22ここでベストアンサー

ポイント26pt

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

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

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

id:harunoharuno

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

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

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

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

2007/01/26 12:25:31

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません