【发布时间】:2010-04-21 01:02:23
【问题描述】:
我正在尝试使用 GetWindowLong(hWnd, GWL_STYLE) 检查窗口是否具有某种样式,但这给了我一个 LONG 类型的变量。你将如何从 const 值类型 'WS_CAPTION' 中检查特定样式?
【问题讨论】:
标签: c++ window-style
我正在尝试使用 GetWindowLong(hWnd, GWL_STYLE) 检查窗口是否具有某种样式,但这给了我一个 LONG 类型的变量。你将如何从 const 值类型 'WS_CAPTION' 中检查特定样式?
【问题讨论】:
标签: c++ window-style
使用按位 & 运算符与该 long 类型进行比较,
例子
if (szLng & WS_CAPTION){
// that window has caption
}
【讨论】:
大多数窗口样式 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;
【讨论】: