最終更新 2003 12/17
サンプルのダウンロード → Exp_SetWindowSize.lzh(38k)
サンプルソースコード
GetClientRect 関数
GetWindowRect 関数
SetWindowPos 関数
対応しているバージョン
95, 98, Me, NT3.1以降, CE1.0以降, 2000, XP
使用するヘッダとライブラリ
winuser.h
user32.lib
|
CreateWindow() 関数でウィンドウを作成するとき、作成するウィンドウの
横幅と高さを指定しますが、ここで指定するのはあくまでウィンドウの
サイズです。
ですから、クライアント領域のサイズはウィンドウのタイトルバーや
メニューがある場合はメニュー欄、ウィンドウに枠を付けている場合は
ウィンドウの枠のサイズ分、小さくなってしまいます。
ポップアップウィンドウの場合はタイトルバーやウィンドウの枠は一切
つきませんから問題はありません。
例えばゲームを作る場合、ゲーム画面を640×480の大きさに
しようとしても、タイトルバーやメニューがついたウィンドウを
640×480で作った場合、実際にゲームが表示されるクライアント領域の
サイズは640×480分は確保されません。
そこで、正確なクライアント領域のサイズを確保する必要があります。
640×480のクライアント領域を確保したい場合、とりあえず
CreateWindow() 関数の横幅と高さに640と480を指定して
ウィンドウを作ってしまいます。
その後、ウィンドウのクライアント領域の外側のサイズを計算して
640と480に足した大きさで、ウィンドウのサイズを変更して
あげれば、正確なクライアント領域を確保できます。
ウィンドウのサイズを変更するには SetWindowPos() 関数を使います。
細かい所はサンプルソースをご覧下さい。
|