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