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 | メニューのハンドル |
hInstance | WinMain()関数から取得したインスタンスハンドル |
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_POPUPWINDOW | WS_BORDER、WS_POPUP、およびWS_SYSMENUスタイルを持つポップアップウィンドウを作成します。コントロールメニューを表示するには、WS_CAPTIONスタイルとWS_POPUPWINDOWスタイルを組み合わせて指定する必要があります。 |
WS_CHILDWINDOW | WS_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で組み合わせて指定する。
設定例
![]() | WS_OVERLAPPEDWINDOW サイズ変更可 |
![]() | WS_POPUPWINDOW | WS_CAPTION サイズ変更不可 |
![]() | WS_POPUP | WS_BORDER | WS_CAPTION サイズ変更不可 |
![]() | WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME ^ WS_MAXIMIZEBOX サイズ変更不可 |