ウィンドウ クラスのスタイル

クラス スタイルは、ウィンドウ クラスの追加の要素を定義します。 ビットごとの OR (|) 演算子を使用して、2 つ以上のスタイルを組み合わせることができます。 ウィンドウ クラスにスタイルを割り当てるには、WNDCLASSEX 構造体のスタイル メンバーにスタイルを割り当てます。

    WNDCLASS wc = {};
    wc.lpfnWndProc = s_DropDownWndProc;
    wc.cbWndExtra = sizeof(CTipACDialog *);
    wc.hInstance = g_hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.style = CS_SAVEBITS | CS_DROPSHADOW;
    wc.lpszClassName = s_wzClassName;
    RegisterClass(&wc);

GitHub 上の Windows クラシック サンプルからの例。

定数

ウィンドウ クラスのスタイルを次に示します。

定数/値 説明
CS_BYTEALIGNCLIENT
0x1000
ウィンドウのクライアント領域をバイト境界 (x 方向) に揃えます。 このスタイルは、ウィンドウの幅とディスプレイ上の水平方向の配置に影響します。
CS_BYTEALIGNWINDOW
0x2000
ウィンドウをバイト境界 (x 方向) に配置します。 このスタイルは、ウィンドウの幅とディスプレイ上の水平方向の配置に影響します。
CS_CLASSDC
0x0040
クラス内のすべてのウィンドウで共有される 1 つのデバイス コンテキストを割り当てます。 ウィンドウ クラスはプロセス固有であるため、アプリケーションの複数のスレッドで同じクラスのウィンドウを作成できます。 また、スレッドがデバイス コンテキストを同時に使用しようとすることもできます。 この場合、システムでは 1 つのスレッドのみが描画操作を正常に完了できます。
CS_DBLCLKS
0x0008
クラスに属するウィンドウ内にカーソルがある間にユーザーがマウスをダブルクリックすると、ウィンドウ プロシージャにダブルクリック メッセージを送信します。
CS_DROPSHADOW
0x00020000
ウィンドウに対するドロップ シャドウ効果を有効にします。 効果は、SPI_SETDROPSHADOWを使用してオンとオフを切 り替えます。 通常、これは、他のウィンドウとの Z オーダーの関係を強調するために、メニューなどの有効期間の短い小さなウィンドウに対して有効になります。 このスタイルを持つクラスから作成された Windows は、最上位のウィンドウである必要があります。子ウィンドウではない可能性があります。
CS_GLOBALCLASS
0x4000
ウィンドウ クラスがアプリケーション グローバル クラスであることを示します。 詳細については、「 ウィンドウ クラスについて」の「アプリケーション グローバル クラス」セクションを参照してください。
CS_HREDRAW
0x0002
移動またはサイズ調整によってクライアント領域の幅が変更された場合は、ウィンドウ全体を再描画します。
CS_NOCLOSE
0x0200
ウィンドウ メニューの [閉じる] を無効にします。
CS_OWNDC
0x0020
クラス内の各ウィンドウに一意のデバイス コンテキストを割り当てます。
CS_PARENTDC
0x0080
子ウィンドウのクリッピング四角形を親ウィンドウのクリッピング四角形に設定して、子が親ウィンドウに描画できるようにします。 CS_PARENTDC スタイル ビットを持つウィンドウは、システムのデバイス コンテキストのキャッシュから通常のデバイス コンテキストを受け取ります。 子に親のデバイス コンテキストまたはデバイス コンテキストの設定は提供されません。 CS_PARENTDCを指定すると、アプリケーションのパフォーマンスが向上します。
CS_SAVEBITS
0x0800
このクラスのウィンドウによって隠された画面イメージの部分をビットマップとして保存します。 ウィンドウが削除されると、システムは保存されたビットマップを使用して、隠されていた他のウィンドウを含む画面イメージを復元します。 したがって、システムは、ビットマップで使用されるメモリが破棄されていない場合、および他の画面アクションによって保存されたイメージが無効になっていない場合に、隠されたウィンドウに WM_PAINTメッセージを 送信しません。
このスタイルは、他の画面アクティビティが発生する前に簡単に表示され、削除される小さなウィンドウ (メニューやダイアログ ボックスなど) に役立ちます。 このスタイルを使用すると、最初にビットマップを格納するためにメモリを割り当てる必要があるため、ウィンドウの表示に必要な時間が長くなります。
CS_VREDRAW
0x0001
移動またはサイズ調整によってクライアント領域の高さが変更された場合は、ウィンドウ全体を再描画します。

要件

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