4

我正在尝试使用 GetWindowLong(hWnd, GWL_STYLE) 检查窗口是否具有某种样式,但这给了我一个 LONG 类型的变量。您将如何从 const 值类型“WS_CAPTION”中检查特定样式?

4

2 回答 2

4

使用按位 & 运算符与该长类型进行比较,

例子

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

大多数窗口样式 WS_ 是单比特值;也就是说,它们中的每一个在 dwStyles 中只占一位。

这里dwStyles可以从:DWORD dwStyles = CWnd::GetStyle();

但是一些 WS_ 样式,例如WS_CAPTION, WS_OVERLAPPEDWINDOW, WS_POPUPWINDOW, 结合了几个单比特样式。

下面的测试代码适用于单位窗口样式,但不适OK用于组合样式。

DWORD dwSomeStyle = WS_... ;
BOOL bSomeStyleIsPresentForThisWnd;

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