アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

作成したウィンドウをデスクトップサイズで作成して、通常のウィンドウサイズにはしたくない。


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

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

    • good
    • 0

>上のメニューの所を


>ダブルクリックすると元のサイズに戻ってしまう

メニューバーですか?

キャプションバー、またはタイトルバーと言われるところではないですか?
通常のエクスプローラのウィンドウとかで、キャプションバーをダブルクリックすると、通常サイズと最大化が切り替えできますが……。

OSが送ってきているモノのようですから、そのままでは対処が難しいかも知れません。
WM_NCHITTESTの返却値をいぢれば「マウスカーソルのある位置はキャプションバーではない」とすることも可能かも知れませんが、
ドラッグでウィンドウを移動できなくなります。
キャプションバーのダブルクリックではなくともタスクバーのアイコンを右クリックとか、キーボードで出したシステムメニューでの操作も可能だったりしますし……。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています