CreateWindow()関数


HWND CreateWindow(
 LPCTSTR lpClassName,
 LPCTSTR lpWindowName,
 DWORD dwStyle,
 int x,
 int y,
 int nWidth,
 int nHeight,
 HWND hWndParent,
 HMENU hMenu,
 HINSTANCE hInstance,
 LPVOID lpParam
);

ウィンドウハンドルは個々のウィンドウを識別するために使われるもので、
ウィンドウを操作する関数を呼び出す時に必要となります。

lpClassName登録済みのウィンドウクラス名
lpWindowNameウィンドウの名前
dwStyleウィンドウの種類や状態を表すビットフラグ
xウィンドウの初期位置
yウィンドウの初期位置
nWidthウィンドウの幅
nHeightウィンドウの高さ
hWndParent親ウィンドウのハンドル
hMenuメニューのハンドル
hInstanceWinMain()関数から取得したインスタンスハンドル
lpParam拡張用のパラメータ

使用例

#define CLASSNAME "Project_Name"
#define WINDOWNAME "TEST"
(中略)

HWND hWnd;

hWnd = CreateWindow( CLASSNAME, WINDOWNAME, WS_OVERLAPPEDWINDOW,
 CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL );

if ( !hWnd ) {
 return FALSE;
}


●ウィンドウの構成要素に関するウィンドウ・スタイル
WS_CAPTIONタイトルバーを持つウィンドウを作成します。このスタイルを指定する場合は、WS_BORDERスタイルも指定する必要もあります。WS_DLGFRAMEスタイルと一緒に使うことはできません。
WS_BORDER境界線を持つウィンドウを作成します。細い(サイズ変更可能な)ウィンドウ枠です。
WS_DLGFRAME二重の境界線を持ち、タイトルは持たないウィンドウを作成します。ダイアログボックスで使用するウィンドウ枠です。
WS_THICKFRAME
WS_SIZEBOX
サイズ変更境界を持つウィンドウを作成します。太い(サイズ変更可能な)ウィンドウ枠です。
WS_HSCROLL水平スクロールバーを持つウィンドウを作成します。
WS_VSCROLL垂直スクロールバーを持つウィンドウを作成します。
WS_SYSMENUタイトルバーにコントロールメニューボックスを持つウィンドウを作成します。タイトルバーを持つウィンドウだけに指定します。WS_CAPTIONスタイルも指定する必要があります。
WS_MAXIMIZEBOX最大化ボタンを持つウィンドウを作成します。WS_SYSMENUと同時に指定する。
WS_MINIMIZEBOX最小化ボタンを持つウィンドウを作成します。WS_SYSMENUと同時に指定する。

●ウィンドウの種類に関するウィンドウ・スタイル
WS_OVERLAPPED
WS_TILED
オーバラップウィンドウを作成します。オーバラップウィンドウには、タイトルバーと境界線があります。
WS_POPUPポップアップウィンドウを作成します。WS_CHILDスタイルと一緒に使うことはできません。
WS_CHILD子ウィンドウを作成します。WS_POPUPスタイルと一緒に使うことはできません。
WS_OVERLAPPEDWINDOW
WS_TILEDWINDOW
WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX、WS_MAXIMIZEBOXスタイルを持つオーバラップウィンドウを作成します。
WS_POPUPWINDOWWS_BORDER、WS_POPUP、およびWS_SYSMENUスタイルを持つポップアップウィンドウを作成します。コントロールメニューを表示するには、WS_CAPTIONスタイルとWS_POPUPWINDOWスタイルを組み合わせて指定する必要があります。
WS_CHILDWINDOWWS_CHILDと同じ

●その他
WS_MINIMIZE
WS_ICONIC
初期状態で最小化されたウィンドウを作成します。必ずWS_OVERLAPPEDスタイルと一緒に使います。
WS_MAXIMIZE最大化されたウィンドウを作成します。
WS_VISIBLE初期状態で表示されるウィンドウを作成します。
WS_DISABLED初期状態で無効になっているウィンドウを作成します。
WS_TABSTOPダイアログボックスでTABキーを押した時に、コントロールが入力フォーカスを取得できるようにする。
WS_GROUPダイアログボックスでコントロールをグループ化する際に指定する。
WS_CLIPCHILDRENクライアント領域内の子ウィンドウのある部分を描画対象から除外する。
WS_CLIPSIBLINGS同じ親ウィンドウの子ウィンドウ同士で重なっている部分を描画対象から除外する。

ウィンドウ・スタイルはビット・フィールドとして定義されており、winuser.hなどのヘッダー・ファイルが定義する「WS_」で始まる定数を必要なだけ論理ORで組み合わせて指定する。

設定例
160_80_1.jpgWS_OVERLAPPEDWINDOW
サイズ変更可
160_80_2.jpgWS_POPUPWINDOW | WS_CAPTION
サイズ変更不可
160_80_3.jpgWS_POPUP | WS_BORDER | WS_CAPTION
サイズ変更不可
160_80_4.jpgWS_OVERLAPPEDWINDOW ^ WS_THICKFRAME ^ WS_MAXIMIZEBOX
サイズ変更不可
Windows > ウィンドウの作成 | comments (0) | trackbacks (0)