拡張ウィンドウ スタイル

拡張ウィンドウ スタイルを次に示します。


virtual    BOOL    Create(HWND hWndParent, WCHAR* pwszClassName,
                            WCHAR* pwszWindowName, UINT uID, HICON hIcon,
                            DWORD dwStyle = WS_OVERLAPPEDWINDOW,
                            DWORD dwExStyle = WS_EX_APPWINDOW,
                            int x = CW_USEDEFAULT, int y = CW_USEDEFAULT,
                            int cx = CW_USEDEFAULT, int cy = CW_USEDEFAULT);

このコードは、リポジトリのWindowsクラシック サンプルGitHubサンプルから取得したものです。

定数/値 説明
WS_EX_ACCEPTFILES
0x00000010L
ウィンドウはドラッグ ドロップ ファイルを受け入れます。
WS_EX_APPWINDOW
0x00040000L
ウィンドウが表示されたら、タスク バーに最上位のウィンドウを強制的に配置します。
WS_EX_CLIENTEDGE
0x00000200L
ウィンドウには、縁が沈んだ境界線があります。
WS_EX_COMPOSITED
0x02000000L
ダブルバッファリングを使用して、ウィンドウのすべての子孫を下から上の塗りつぶしの順序で描画します。 下から上への描画順序を使用すると、降順ウィンドウに半透明 (アルファ) 効果と透明度 (カラー キー) 効果を適用できますが、降順ウィンドウにWS_EX_TRANSPARENT ビットも設定されている場合に限ります。 ダブルバッファリングを使用すると、ウィンドウとその子孫をちらつきなく塗りつぶすことができます。 ウィンドウにCS_OWNDCまたはCS_CLASSDCのいずれかのクラス スタイルがある場合は、これを使用できません。
Windows 2000: このスタイルはサポートされていません。
WS_EX_CONTEXTHELP
0x00000400L
ウィンドウのタイトル バーには疑問符が含まれています。 ユーザーがこの疑問符をクリックすると、カーソルは、疑問符付きのポインターに変化します。 ユーザーが子ウィンドウをクリックすると、子は WM_HELP メッセージを受け取ります。 子ウィンドウは、HELP_WM_HELP コマンドを使用して WinHelp 関数を呼び出す必要がある親ウィンドウ プロシージャにメッセージを渡す必要があります。 ヘルプ アプリケーションには、通常、子ウィンドウのヘルプを含むポップアップ ウィンドウが表示されます。
WS_EX_CONTEXTHELP は、 WS_MAXIMIZEBOX または WS_MINIMIZEBOX スタイルでは使用できません。
WS_EX_CONTROLPARENT
0x00010000L
ウィンドウ自体には、ダイアログ ボックスのナビゲーションに参加する必要がある子ウィンドウが含まれています。 このスタイルを指定すると、Tab キー、矢印キー、キーボードニーモニックの処理などのナビゲーション操作を実行するときに、ダイアログ マネージャーはこのウィンドウの子に再帰します。
WS_EX_DLGMODALFRAME
0x00000001L
ウィンドウには二重の境界線があります。必要に応じて、dwStyle パラメーターで WS_CAPTION スタイルを指定することで、ウィンドウをタイトル バーで作成できます。
WS_EX_LAYERED
0x00080000
ウィンドウは レイヤード ウィンドウです。 ウィンドウのクラス スタイルが CS_OWNDC または CS_CLASSDC の場合、このスタイル使用できません。
Windows 8:WS_EX_LAYERED スタイルは、最上位のウィンドウと子ウィンドウでサポートされています。 以前のWindowsバージョンでは、最上位レベルのウィンドウに対してのみWS_EX_LAYEREDがサポートされています。
WS_EX_LAYOUTRTL
0x00400000L
シェル言語がヘブライ語、アラビア語、または読み取り順序の配置をサポートする別の言語の場合、ウィンドウの水平方向の起点は右端にあります。 水平方向の値を増やすと、左に進みます。
WS_EX_LEFT
0x00000000L
ウィンドウには、一般的な左揃えプロパティがあります。 既定値です。
WS_EX_LEFTSCROLLBAR
0x00004000L
シェル言語がヘブライ語、アラビア語、または読み取り順序の配置をサポートする別の言語の場合、垂直スクロール バー (存在する場合) はクライアント領域の左側にあります。 他の言語の場合、スタイルは無視されます。
WS_EX_LTRREADING
0x00000000L
ウィンドウ テキストは、左から右の読み取り順序プロパティを使用して表示されます。 既定値です。
WS_EX_MDICHILD
0x00000040L
このウィンドウは MDI 子ウィンドウです。
WS_EX_NOACTIVATE
0x08000000L
このスタイルで作成された最上位のウィンドウは、ユーザーがクリックしても前景ウィンドウになりません。 ユーザーがフォアグラウンド ウィンドウを最小化または閉じると、システムはこのウィンドウをフォアグラウンドに移動しません。
プログラムによるアクセスや、ナレーターなどのアクセス可能なテクノロジによるキーボード ナビゲーションを使用して、ウィンドウをアクティブ化しないでください。
ウィンドウをアクティブにするには、 SetActiveWindow または SetForegroundWindow 関数を 使用します。
既定では、タスク バーにウィンドウは表示されません。 タスク バーにウィンドウを強制的に表示するには、 WS_EX_APPWINDOW スタイルを使用します。
WS_EX_NOINHERITLAYOUT
0x00100000L
ウィンドウは、そのウィンドウ レイアウトを子ウィンドウに渡しません。
WS_EX_NOPARENTNOTIFY
0x00000004L
このスタイルで作成された子ウィンドウは、 WM_PARENTNOTIFY メッセージが作成または破棄されたときに親ウィンドウに送信されません。
WS_EX_NOREDIRECTIONBITMAP
0x00200000L
ウィンドウはリダイレクト サーフェイスにレンダリングされません。 これは、表示されるコンテンツがないウィンドウ、またはサーフェス以外のメカニズムを使用してビジュアルを提供するウィンドウ用です。
WS_EX_OVERLAPPEDWINDOW
(WS_EX_WINDOWEDGE |WS_EX_CLIENTEDGE)
ウィンドウは重なり合ったウィンドウです。
WS_EX_PALETTEWINDOW
(WS_EX_WINDOWEDGE |WS_EX_TOOLWINDOW |WS_EX_TOPMOST)
ウィンドウはパレット ウィンドウで、コマンドの配列を示すモードレス ダイアログ ボックスです。
WS_EX_RIGHT
0x00001000L
ウィンドウには、汎用の "右揃え" プロパティがあります。 これはウィンドウ クラスに依存します。 このスタイルは、シェル言語がヘブライ語、アラビア語、または読み取り順序の配置をサポートする別の言語である場合にのみ有効です。それ以外の場合、スタイルは無視されます。
静的コントロールまたは編集コントロールに WS_EX_RIGHT スタイルを使用すると、それぞれ SS_RIGHT または ES_RIGHT スタイルを使用する場合と同じ効果があります。 ボタン コントロールでこのスタイルを使用すると、BS_RIGHTスタイルや BS_RIGHTBUTTON スタイルを使用 する 場合と同じ効果があります。
WS_EX_RIGHTSCROLLBAR
0x00000000L
垂直スクロール バー (存在する場合) は、クライアント領域の右側にあります。 既定値です。
WS_EX_RTLREADING
0x00002000L
シェル言語がヘブライ語、アラビア語、または読み取り順序の配置をサポートする別の言語の場合、ウィンドウ テキストは右から左への読み取り順序プロパティを使用して表示されます。 その他の言語の場合、スタイルは無視されます。
WS_EX_STATICEDGE
0x00020000L
ウィンドウには、ユーザー入力を受け入れられない項目に使用することを目的とした 3 次元の境界線スタイルがあります。
WS_EX_TOOLWINDOW
0x00000080L
このウィンドウは、フローティング ツールバーとして使用することを目的としています。 ツール ウィンドウには、通常のタイトル バーより短いタイトル バーがあり、ウィンドウ タイトルは小さいフォントを使用して描画されます。 ツール ウィンドウは、タスク バーや、ユーザーが Alt キーを押しながら Tab キーを押したときに表示されるダイアログには表示されません。 ツール ウィンドウにシステム メニューがある場合、そのアイコンはタイトル バーに表示されません。 ただし、システム メニューを表示するには、右クリックするか、Alt + SPACE キーを押します。
WS_EX_TOPMOST
0x00000008L
ウィンドウは、最上位以外のすべてのウィンドウの上に配置し、ウィンドウが非アクティブ化されている場合でも、その上に配置する必要があります。 このスタイルを追加または削除するには、 SetWindowPos 関数を使用します。
WS_EX_TRANSPARENT
0x00000020L
ウィンドウの下の兄弟 (同じスレッドによって作成された) が描画されるまで、ウィンドウを描画しないでください。 基になる兄弟ウィンドウのビットが既に描画されているため、ウィンドウは透明に表示されます。
これらの制限なしで透明性を実現するには、 SetWindowRgn 関数を 使用します。
WS_EX_WINDOWEDGE
0x00000100L
ウィンドウには、上げエッジを持つ境界線があります。

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Winuser.h (Windows.h を含む)