我正在尝试使用GetWindowLong(hWnd,GWL_STYLE)来检查窗口是否具有某种样式,但这给了我一个LONG类型的变量。你会如何检查一个特定的样式,说一个const值类型'WS_CAPTION'?
答案 0 :(得分:4)
使用按位&运算符与该long类型进行比较,
例如
if (szLng & WS_CAPTION){
// that window has caption
}
答案 1 :(得分: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;