I'm trying to check if a window has a certain style using GetWindowLong(hWnd, GWL_STYLE) but that gives me a LONG type of variable. how would you check for a specific style from that say a const value type 'WS_CAPTION'?
+2
A:
use the bitwise & operator to compare with that long type,
example
if (szLng & WS_CAPTION){
// that window has caption
}
S.Mark
2010-04-21 01:05:32
Its not the logical, but the *bitwise* AND operator.
Georg Fritzsche
2010-04-21 01:12:32
Oops, I stand corrected. thanks
S.Mark
2010-04-21 01:14:39
A:
Most of the window styles WS_ are single-bit values; that is each of them occupies only one bit in dwStyles.
Here dwStyles can be obtained from: DWORD dwStyles = CWnd::GetStyle();
But some of the WS_ styles, such as WS_CAPTION, WS_OVERLAPPEDWINDOW, WS_POPUPWINDOW, combine a few single-bit styles.
The test code below is OK for single-bit window styles but not OK for combined styles.
DWORD dwSomeStyle = WS_... ;
BOOL bSomeStyleIsPresentForThisWnd;
if ( (dwStyles & dwSomeStyle) == TRUE )
bSomeStyleIsPresentForThisWnd = TRUE;
else
bSomeStyleIsPresentForThisWnd = FALSE;
June, 2010.
Mike
2010-06-24 03:21:32