• ベストアンサー

VC++2010 MFC サイズの最大化について

VC++2010 MFCで作成しているんですが、 ShowWindow(SW_MAXIMIZE)を使用し最大化で表示出来たんですが、上のメニューの所を ダブルクリックすると元のサイズに戻ってしまうんですが、どのようにすれば元のサイズに戻らず サイズも変更されずに最大化のまま表示できますか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

作成したウィンドウをデスクトップサイズで作成して、通常のウィンドウサイズにはしたくない。 というのであれば、システムメニューから最大化を削除してウィンドウはサイズ変更可にしない(CWnd::Create()の第3引数でWS_THICKFRAMEを含まないもの)にして作成して下さい。 # 「MFC 最大化 システムメニュー 削除」あたりで検索を。 で、Cwnd::PreCreateWindow()でCREATESTRUCT構造体のx,y,cx,cyメンバを書き換えて下さい。 # CWnd::Create()での引数を調整する。なんてのもアリですけどね。 # デスクトップのサイズを知るには「デスクトップ サイズ 取得」あたりで検索を。

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

サイズ固定したいのなら、ダイアログベースでアプリケーション作成するとかが手っ取り早いのでは。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>上のメニューの所を >ダブルクリックすると元のサイズに戻ってしまう メニューバーですか? キャプションバー、またはタイトルバーと言われるところではないですか? 通常のエクスプローラのウィンドウとかで、キャプションバーをダブルクリックすると、通常サイズと最大化が切り替えできますが……。 OSが送ってきているモノのようですから、そのままでは対処が難しいかも知れません。 WM_NCHITTESTの返却値をいぢれば「マウスカーソルのある位置はキャプションバーではない」とすることも可能かも知れませんが、 ドラッグでウィンドウを移動できなくなります。 キャプションバーのダブルクリックではなくともタスクバーのアイコンを右クリックとか、キーボードで出したシステムメニューでの操作も可能だったりしますし……。