我正在尝试使用 GetWindowLong(hWnd, GWL_STYLE) 检查窗口是否具有某种样式,但这给了我一个 LONG 类型的变量。您将如何从 const 值类型“WS_CAPTION”中检查特定样式?
问问题
6358 次
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 回答