4

GetWindowLong(hWnd, GWL_STYLE) を使用してウィンドウに特定のスタイルがあるかどうかを確認しようとしていますが、LONG 型の変数が得られます。const値型「WS_CAPTION」などから特定のスタイルをどのように確認しますか?

4

2 に答える 2

4

ビットごとの & 演算子を使用してその long 型と比較し、

if (szLng & WS_CAPTION){
    // that window has caption
}
于 2010-04-21T01:05:32.733 に答える
0

ほとんどのウィンドウ スタイル WS_ はシングル ビット値です。つまり、それぞれが dwStyles で 1 ビットしか占有しません。

ここdwStylesから入手できます:DWORD dwStyles = CWnd::GetStyle();

WS_CAPTIONただし、WS_OVERLAPPEDWINDOW、 、 などの一部の WS_ スタイルは、WS_POPUPWINDOWいくつかの単一ビット スタイルを組み合わせています。

以下のテスト コードは、単一ビット ウィンドウ スタイルでは問題ありませんOKが、組み合わせたスタイルでは問題ありません。

DWORD dwSomeStyle = WS_... ;
BOOL bSomeStyleIsPresentForThisWnd;

if (dwStyles & dwSomeStyle)
  bSomeStyleIsPresentForThisWnd = TRUE;
else
  bSomeStyleIsPresentForThisWnd = FALSE;
于 2010-06-24T03:21:32.747 に答える