パラメータ
dwExStyle
作成するウィンドウの拡張ウィンドウスタイルを指定する。次の値を組み合わせて指定できる。
スタイル
|
意味
|
WS_EX_ACCEPTFILES |
ドラッグアンドドロップでファイルを受け入れる。 |
WS_EX_APPWINDOW |
ウィンドウが表示されているときには、必ずトップレベルウィンドウがタスクバー上に置かれる。 |
WS_EX_CLIENTEDGE |
縁が沈んで見える境界線を持つ。 |
WS_EX_CONTEXTHELP |
ウィンドウのタイトルバーに[?]ボタンを追加する。ユーザーがこの[?]ボタンをクリックすると、マウ |
|
スポインタに疑問符が付く。その後、ユーザーが子ウィンドウをクリックすると、その子ウィンドウに |
|
WM_HELP メッセージが送られる。子ウィンドウは、親ウィンドウのプロシージャにそのメッセージを渡 |
|
さなければならない。 |
|
メッセージを受け取ったプロシージャは、HELP_WM_HELP コマンドを使って WinHelp 関数を呼び |
|
出さなければならない。ヘルプアプリケーションは、通常、子ウィンドウに関するヘルプの入ったポップ |
|
アップウィンドウを表示する。 |
|
WS_EX_CONTEXTHELP は WS_MAXIMIZEBOX スタイルや WS_MINIMIZEBOX スタイルとは |
|
一緒に使用できない。 |
WS_EX_CONTROLPARENT |
ウィンドウが持つ子ウィンドウを、そのダイアログボックスナビゲーションに含める。 |
|
このスタイルを指定すると、ダイアログマネージャは、ナビゲーション操作を実行するとき([Tab]キ |
|
ー、方向キー、キーボード操作などを処理する際)に、このウィンドウの子ウィンドウにまで再帰的に |
|
移動する。 |
WS_EX_DLGMODALFRAME |
二重の境界線を持つウィンドウを作成する。dwStyle パラメータに WS_CAPTION スタイルを指定し |
|
て、タイトルバーを持たせることもできる。 |
WS_EX_LAYERED |
Windows
2000:レイヤーウィンドウ を作成する。 |
WS_EX_LAYOUTRTL |
Windows
2000:右端が水平方向の原点となるウィンドウを作成する。 |
|
左に行くにつれ、座標値が大きくなる。 |
WS_EX_LEFT |
一般的な左揃えのプロパティを持つウィンドウを作成する。このスタイルは既定。 |
WS_EX_LEFTSCROLLBAR |
垂直スクロールバーがクライアント領域の左側に置かれる。 |
|
ヘブライ語やアラビア語などの読みの方向をサポートしている言語をシェル言語としているシステムで有 |
|
効。他の言語では、このスタイルは無視される。 |
WS_EX_LTRREADING |
左から右への読み取り順序を持つプロパティを持ったウィンドウを作成する。このスタイルは既定。 |
WS_EX_MDICHILD MDI |
子ウィンドウを作成する。 |
WS_EX_NOACTIVATE |
Windows
2000:このスタイルで作成されたトップレベルウィンドウは、ユーザーがクリックしてもフォアグ |
|
ラウンドウィンドウにならない。ユーザーがフォアグラウンドウィンドウを最小化したり閉じたりしたときに |
|
も、システムがこのウィンドウをフォアグラウンドウィンドウにすることはない。 |
|
このウィンドウをアクティブにするには、SetActiveWindow 関数または SetForegroundWindow 関数を |
|
使う。 |
WS_EX_NOINHERITLAYOUT |
Windows
2000:このスタイルで作成されたウィンドウは、そのウィンドウレイアウトを子ウィンドウに渡さ |
|
ない。 |
WS_EX_NOPARENTNOTIFY |
このスタイルで作成された子ウィンドウは、作成されたり破棄されたりしたときに親ウィンドウに |
|
WM_PARENTNOTIFY メッセージを送らない。 |
WS_EX_OVERLAPPEDWINDOW |
WS_EX_CLIENTEDGE スタイルと WS_EX_WINDOWEDGE スタイルの組み合わせ。 |
WS_EX_PALETTEWINDOW |
WS_EX_WINDOWEDGE スタイル、WS_EX_TOOLWINDOW スタイル、WS_EX_TOPMOST |
|
スタイルの組み合わせ。 |
WS_EX_RIGHT |
一般的な右揃えのプロパティを持つウィンドウを作成する。このスタイルは、ウィンドウクラスに依存す |
|
る。ヘブライ語やアラビア語などの読みの方向をサポートしている言語をシェル言語としているシステム |
|
で有効。 |
WS_EX_RIGHTSCROLLBAR |
垂直スクロールバーがクライアント領域の右側に置かれる。このスタイルは既定。 |
WS_EX_RTLREADING |
右から左への読み取り順序のプロパティを使ってテキストを表示するウィンドウを作成する。 |
|
ヘブライ語やアラビア語などの読みの方向をサポートしている言語をシェル言語としているシステムで有 |
|
効。 |
WS_EX_STATICEDGE |
ユーザー入力を受け付けない項目用の立体的に見える境界スタイルを持つウィンドウを作成する。 |
WS_EX_TOOLWINDOW |
ツールウィンドウを作成する。これは、フローティングツールバー用のウィンドウである。 |
|
ツールウィンドウは、通常のタイトルバーより小さいタイトルバーを持ち、ウィンドウタイトルも通常より小 |
|
さいフォントで表示される。タスクバーや、[Alt]+[Tab]キーを押したとき現れるダイアログには |
|
表示されない。ツールウィンドウがシステムメニューを持つ場合でも、タイトルバーにアイコンは表示され |
|
ない。ツールウィンドウがシステムメニューを持つ場合でも、タイトルバーにアイコンは表示されない。 |
|
システムメニューを表示するには、右クリックするか、または[Alt]+[Space]キーを押す。 |
WS_EX_TOPMOST |
最前面ウィンドウを作成する。このウィンドウは、アクティブでないときにも他のウィンドウの前面に表示 |
|
される。このスタイルは、SetWindowPos 関数を使って有効にしたり無効にしたりできる。 |
WS_EX_TRANSPARENT |
このスタイルで作成されたウィンドウは、その下にある兄弟ウィンドウ( 同じスレッドにより作成された |
|
ウィンドウ)が描画されるまでは描画されない。下にある兄弟ウィンドウのビットが既に描画されている |
|
ため、ウィ
ンドウは透明に見える。 |
|
この制限なしに透明な効果を得るには、SetWindowRgn 関数を使う。 |
WS_EX_WINDOWEDGE |
盛り上がった縁の境界線を持つ。 |
lpClassName
NULL で終わる文字列へのポインタかクラスアトムを指定する。クラスアトムを指定する場合は、RegisterClass
関数または
RegisterClassEx 関数の呼び出しにより作成したものを使用する。
lpClassName パラメータの下位ワードにアトムを格納し、上位ワードに 0 を格納する。
lpClassName
パラメータに文字列を指定する場合は、ウィンドウクラスの名前を指定する。クラス名には、RegisterClass 関数または
RegisterClassEx 関数で登録した名前を指定できる。ただし、クラスを登録したモジュールとウィンドウを作成するモジュールが同一でなけれ
ばならない。クラス名には、定義済みのシステムクラス 名を指定することもできる。
lpWindowName
ウィンドウ名が入った、NULL で終わる文字列へのポインタを指定する。
ウィンドウスタイルでタイトルバーを指定した場合は、lpWindowName
パラメータに指定したウィンドウタイトルがタイトルバーに表示される。
ボタン、チェックボックス、スタティックコントロールなどのコントロールを作成する場合は、lpWindowName パラメータにコントロールのテキスト
を指定する。SS_ICON スタイルを持つスタティックコントロールを作成する場合は、lpWindowName パラメータにアイコンの名前または識別
子を指定する。識別子を指定する場合は、"#num" という構文を使う。
dwStyle
作成するウィンドウのスタイルを指定する。
任意の組み合わせのウィンドウスタイル に加えて、解説に示すコントロールスタイルも指定できる。
x
ウィンドウの横方向の初期位置を指定する。
オーバーラップウィンドウまたはポップアップウィンドウを作成する場合は、ウィンドウの左上端の x 座標をスクリーン座標で指定する。
子ウィンドウを作成する場合は、ウィンドウ左上端の x 座標を、親ウィンドウのクライアント領域の左上端に対する相対座標で指定する。
x パラメータに CW_USEDEFAULT を指定すると、ウィンドウの左上端には既定位置が使用され、y
パラメータは無視される。
CW_USEDEFAULT を指定できるのは、オーバーラップウィンドウを作成する場合だけである。ポップアップウィンドウおよび子ウィンドウに
CW_USEDEFAULT を指定すると、x パラメータと y パラメータは 0 に設定される。
y
ウィンドウの縦方向の初期位置を指定する。
オーバーラップウィンドウまたはポップアップウィンドウを作成する場合は、ウィンドウの左上端の y 座標をスクリーン座標で指定する。
子ウィンドウを作成する場合は、ウィンドウ左上端の y 座標を、親ウィンドウのクライアント領域の左上端に対する相対座標で指定する。
リストボックスの場合、y パラメータは、親ウィンドウのクライアント領域の左上端に対するリストボックスのクライアント領域の左上端の相対
y 座標の初期値となる。
nWidth
ウィンドウの幅をデバイス単位で指定する。
オーバーラップウィンドウの場合は、スクリーン座標でのウィンドウの幅か CW_USEDEFAULT を指定する。
CW_USEDEFAULT を指定すると、既定の幅と高さが使用される。既定の幅は、初期 x 座標から画面の右端までの距離、既定の
高さは、初期 y 座標からアイコン領域の上端までの距離である。CW_USEDEFAULT を指定できるのは、オーバーラップウィンドウを作成
する場合だけである。ポップアップウィンドウおよび子ウィンドウに CW_USEDEFAULT を指定すると、nWidth パラメータと nHeight
パラメー
タは 0 に設定される。
nHeight
ウィンドウの高さをデバイス単位で指定する。
オーバーラップウィンドウの場合は、スクリーン座標でのウィンドウの高さを指定する。nWidth パラメータに CW_USEDEFAULT を指定した
場合は、nHeight パラメータは無視される。
hWndParent
作成するウィンドウの親ウィンドウまたはオーナーウィンドウのハンドルを指定する。
子ウィンドウを作成する場合は、必ず有効なウィンドウハンドルを指定する。
ポップアップウィンドウを作成する場合は、このパラメータは省略可能。
Windows 2000:メッセージ専用ウィンドウ を作成する場合は、HWND_MESSAGE
か、または既存のメッセージ専用ウィンドウのハンドル
を指定する。
hMenu
ウィンドウスタイルに応じてメニューまたは子ウィンドウ ID を指定する。
オーバーラップウィンドウまたはポップアップウィンドウの場合は、ウィンドウと一緒に使用されるメニューのハンドルを指定する。
クラスメニューを使う場合は、NULL でかまわない。子ウィンドウの場合は、子ウィンドウ ID を指定する。
子ウィンドウ ID とは、ダイアログボックスコントロールがその親ウィンドウにイベントを通知するときに使用する整数値。
子ウィンドウ ID はアプリケーションで決定するが、同じ親ウィンドウを持つ子ウィンドウの間では重複していてはならない。
hInstance
Windows 95/98:ウィンドウに関連付けられたモジュールのインスタンスハンドルを指定する。
Windows NT/2000:このパラメータは無視される。
lpParam
WM_CREATE メッセージで lParam パラメータに渡される CREATESTRUCT
構造体によりウィンドウに渡される値へのポインタを指定す
る。マルチドキュメントインターフェイス(MDI)のクライアントウィンドウを作成する場合、CLIENTCREATESTRUCT 構造体へのポインタを
指定しなければならない。
戻り値
関数が成功すると、作成されたウィンドウのハンドルが返る。
関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。 |