- ベストアンサー
作成したウインドウのサイズを固定するには?
現在私はWin32APIの勉強中です>< 現在参考書を片手に、 まず最初に真っ白の何もしないウインドウを作成してみました。 この作成したウインドウでは、マウスでウインドウの角をクリックしながらドラッグすると、ウインドウのサイズを自由に変更できます。 しかし、私はこのウインドウのサイズをこのようにマウス操作で変更することができないようにしたいのですが、どのようにしたらよいのでしょうか? ご教授よろしくお願いいたします><
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
前置き。 今のところスケルトンプログラム(ただウインドウを表示するプログラム)しか出来ないようでしたら、下の関数で、 まあ、とりあえず詳しく説明します。^_^ HWND CreateWindow( LPCTSTR lpClassName, // 登録されているクラス名 LPCTSTR lpWindowName, // ウィンドウ名 DWORD dwStyle, // ウィンドウスタイル int x, // ウィンドウの横方向の位置 int y, // ウィンドウの縦方向の位置 int nWidth, // ウィンドウの幅 int nHeight, // ウィンドウの高さ HWND hWndParent, // 親ウィンドウまたはオーナーウィンドウのハンドル HMENU hMenu, // メニューハンドルまたは子ウィンドウ ID HINSTANCE hInstance, // アプリケーションインスタンスのハンドル LPVOID lpParam // ウィンドウ作成データ ); 今、あなたが変更したいとおっしゃっているのは 上の CreateWindow() 関数のウインドウスタイルという 3番目に DWORD dwStyle, // ウィンドウスタイル と記述されているところを変えなければなりません。 大体は下のようなものが使われています。 WS_OVERLAPPEDWINDOW | WS_VISIBLE WS_OVERLAPPEDWINDOW は、まあ現在表示されている ウインドウになるまさしく犯人です。 もう一つの方は気にしないでください。 後、 | はたし算みたいな 記号と覚えておきましょう。 効果は WS_OVERLAPPEDWINDOW の機能に WS_VISIBLE の 機能を加えるみたいな感じです。 積もり積もった前置きはこのぐらいにして 回答。 WS_OVERLAPPEDWINDOW | WS_VISIBLE この部分を WS_OVERLAPPED | WS_SYSMENU これにすると 閉じるボタン(×)だけ表示されウインドウのサイズは 変更できません。 WS_OVERLAPPEDWINDOW ^ WS_MAXIMIZEBOX ^ WS_THICKFRAME | WS_VISIBLE こちらにすると 最小化は出来ますが、最大化およびサイズの変更は出来ません。 ^ これについては、さっきの足し算とは逆に 引き算です。 まあ、他にも色々組み合わせはあるのですが希望 のものだと思います。 がんばってください。^_^
その他の回答 (1)
- yonfa
- ベストアンサー率52% (22/42)
CreateWindow()の第3パラメータのウィンドウスタイルから WS_SIZEBOX のフラグを削除してください。
お礼
迅速なお返事ありがとうございます! 早速試してみたいと思います。
お礼
迅速なお返事ありがとうございます!! そしてご丁寧に教えていただき、本当に感謝です。 さっそく試してみたところ、ウインドウサイズを固定することができました。これから頑張って勉強してマスターしたいです。 ありがとうございました!