获得窗口风格

时间:2010-04-21 01:02:23

标签: c++ window-style

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

2 个答案:

答案 0 :(得分:4)

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

例如

if (szLng & WS_CAPTION){
    // that window has caption
}

答案 1 :(得分:0)

大多数窗口样式WS_都是单比特值; 这就是每个人在dwStyles中只占一位。

此处dwStyles可以从DWORD dwStyles = CWnd::GetStyle();

获取

但有些WS_样式,例如WS_CAPTIONWS_OVERLAPPEDWINDOWWS_POPUPWINDOW,结合几个单位样式。

以下测试代码适用于单位窗口样式 但对于组合样式,不是OK

DWORD dwSomeStyle = WS_... ;
BOOL bSomeStyleIsPresentForThisWnd;

if (dwStyles & dwSomeStyle)
  bSomeStyleIsPresentForThisWnd = TRUE;
else
  bSomeStyleIsPresentForThisWnd = FALSE;