• ベストアンサー

作成したウインドウのサイズを固定するには?

現在私はWin32APIの勉強中です>< 現在参考書を片手に、 まず最初に真っ白の何もしないウインドウを作成してみました。 この作成したウインドウでは、マウスでウインドウの角をクリックしながらドラッグすると、ウインドウのサイズを自由に変更できます。 しかし、私はこのウインドウのサイズをこのようにマウス操作で変更することができないようにしたいのですが、どのようにしたらよいのでしょうか? ご教授よろしくお願いいたします><

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

  • ベストアンサー
  • koedame
  • ベストアンサー率33% (10/30)
回答No.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 こちらにすると 最小化は出来ますが、最大化およびサイズの変更は出来ません。  ^ これについては、さっきの足し算とは逆に 引き算です。 まあ、他にも色々組み合わせはあるのですが希望 のものだと思います。 がんばってください。^_^

C-Disney
質問者

お礼

迅速なお返事ありがとうございます!! そしてご丁寧に教えていただき、本当に感謝です。 さっそく試してみたところ、ウインドウサイズを固定することができました。これから頑張って勉強してマスターしたいです。 ありがとうございました!

その他の回答 (1)

  • yonfa
  • ベストアンサー率52% (22/42)
回答No.1

CreateWindow()の第3パラメータのウィンドウスタイルから WS_SIZEBOX のフラグを削除してください。

C-Disney
質問者

お礼

迅速なお返事ありがとうございます! 早速試してみたいと思います。

関連するQ&A

  • ウィンドウのサイズ変更

    Windows 10の質問です。 マウスでウィンドウの大きさ変更するための右下の隅ですが、 (添付画像の赤い四角の右下の隅)赤い場所の何処からドラッグしても サイズ変更できる様に出来ないでしょうか。 タッチ操作やペン操作で使っているときに掴みづらくて困っています。

  • ウインドウのサイズ変更、移動ができません。

    Windows7 Professional 32bitを使用しているのですが ウインドウをマウスで移動、サイズ変更が出来なくなってしまいました。 マウスの右クリック、キーボードのショートカット(Alt+Space)のメニューで移動や、サイズ変更を選ンだ場合、キーボードで操作すれば移動、サイズ変更ともに正常に動作します。 最大化、最小化ボタンも正常に機能します。 マウスの場合、ウインドウの縁にマウスポインターを持っていくと、サイズ変更の矢印ポインターに表示は変わりますが、マウスの左ボタンを押しても枠が選択されず、ドラッグしても、通常のポインターに戻ってしまいます。 移動に関しては十字矢印のポインターにも変わりません。 原因は多分registryboosterというレジストリーエラーを修正してくれるというソフトのせいだと思います。 このソフトにリストアがあったのでリストアしてみましたが戻りませんでした。 どなたか、この問題の解決法をご存じないでしょうか? よろしくお願いいたします。

  • ウインドウのサイズ変更、移動ができません

    Windows7 Professional 32bitを使用しているのですが ウインドウをマウスで移動、サイズ変更が出来なくなってしまいました。 マウスの右クリック、キーボードのショートカット(Alt+Space)のメニューで移動や、サイズ変更を選ンだ場合、キーボードで操作すれば移動、サイズ変更ともに正常に動作します。 最大化、最小化ボタンも正常に機能します。 マウスの場合、ウインドウの縁にマウスポインターを持っていくと、サイズ変更の矢印ポインターに表示は変わりますが、マウスの左ボタンを押しても枠が選択されず、ドラッグしても、通常のポインターに戻ってしまいます。 移動に関しては十字矢印のポインターにも変わりません。 原因は多分registryboosterというレジストリーエラーを修正してくれるというソフトのせいだと思います。 このソフトにリストアがあったのでリストアしてみましたが戻りませんでした。 どなたか、この問題の解決法をご存じないでしょうか? よろしくお願いいたします。

  • 非アクティブウィンドウの作成

    非アクティブウィンドウの作成 Visual C++でプログラミングをしている際に行き詰ったので質問させてください。 現在「最前面に表示されるがクリックされてもアクティブ化しないプログラム」を作成したいのですが、最前面に表示されるところまでは出来てもクリックするとアクティブ化してしまいます。 http://okwave.jp/qa/q1532983.html http://www.arcpit.co.jp/winapi/api_02/ap020214.htm http://d.hatena.ne.jp/kent013/20080304/1204640570 などを参考にして試してみたのですが、ウィンドウメッセージからの操作はうまく適用することができなかったのか通常通りアクティブ化してしまいました。 乱文になってしまいましたが、ご回答いただけるとありがたいです。

  • ウィンドウの固定

    window.openでfullscreen=yesと設定した全画面表示のウィンドウは、マウスでドラッグできます。  通常のアプリケーションで、画面右上の全画面ボタンをクリックして表示されるウィンドウはドラッグできません。  ウィンドウの開き方が違うのだと思いますが、どこがどうちがうのでしょうか。全画面表示で、ドラッグできないウィンドウを表示したいのですが、いろいろ調べてやってみましたが、全部失敗しました。  卒業アルバム作りで急いでいます。  どなたか、詳しい方ご教授お願い致します。  できれば、具体的なコードをお願いします。

  • ウインドウのサイズ固定

    メニューをクリックすると、別ページが出てくるように設定しているのですが、そのウインドウサイズを、任意の大きさで固定したいのです。 ビルダー7のソフトを使っているので、ページサイズかな?とか色々試したのですが、ウインドウのサイズは分かりませんでした。。   ウインドウサイズを固定して、なおかつ他の人がサイズを変更できないようにするにはどうしたらよいでしょうか? どうぞよろしくお願いします!

  • 画像挿入のウィンドウのサイズが変更できない

    Windowsメールで、メールに画像を挿入する際、画像挿入のアイコンをクリックすると、マイピクチャに登録している画像フォルダのウィンドウが開きます。そのウィンドウは最大化していて、タイトルバーには「閉じる」の×のみで、「最大化」や「最小化」のボタンはありません。 カーソルを角や端に合わせると、サイズ変更できる矢印に変わるのですが、ドラッグしてもサイズ変更はできません。 スタートボタンからマイピクチャを開けると、ウィンドウのサイズはいくらでも変更できますが、Windowsメールから開けると最大化で固定されてしまっています。 大きすぎて見にくいので小さくしたいのですが、どうしたらいいでしょうか。

  • VC# 境界線のないウィンドウフレームのサイズ変更

    VC#を勉強しています。 質問内容ですが、ウィンドウフレームのプロパティの FormBorderStyle がありますよね。 これを、[none]に設定するとウィンドウフレームが消えます。 このフレームのサイズ変更をマウスを使って行いたいのですが、どうもやり方がわかりません。 境界線がないので、ステータスバーをウィンドウ下部へつけて、ステータスバーの右下のサイズ変更用の部分にマウスカーソルを当ててドラッグしてみても、サイズが変更されません。 何かいい方法があれば、教えて頂きたいです。 どうかよろしくお願いいたします。

  • ウィンドウのサイズ変更が出来ない。

    ウィンドウのサイズ変更が出来ない。 自分は普段はwin使ってるんですが、だからまだmacは不慣れなのです、、、 miってフリーソフトを落として、起動してしばらく使っているうちに、なんかの手違いでウィンドウを大きくし過ぎて、サイズを変更できなくなりました。 画面を最大化しようが、普通サイズにしようが、ウィンドウを上に持っていこうとしてもシステムバー(?)で突っかかって、それでも画面が1~2行分ぐらい画面外に下に潜って、ウィンドウ右下のサイズを変える部分をドラック出来ない状況です。 一応作業ファイルを余分に改行すれば全文見れるのですが、やはり不便です。 なんとか、サイズを変更して画面内に収まるように出来ないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Mac
  • ウィンドウの移動

    Win8でデスクトップ上に開いたウィンドウを移動する方法を教えて下さい。 知りたいのは「マウスでウィンドウの上部を左クリックしてドラッグ&ドロップ」や「タッチパネルの操作」以外の操作です。 なぜそんなことが知りたいかというと、マルチディスプレイで電源が入っていないディスプレイに表示されているウィンドウを電源を入れ直したりせずに写っている方のディスプレイに短い手順で移動したいからです。 XPの場合はタスクバー上のアイコンを右クリックして移動(正確な名前ではないかもしれません)を選択してドラッグ&ドロップかまたは矢印ボタンで移動できましたがWin8には見当たらないので。