J'essaie de vérifier si une fenêtre a un certain style en utilisant GetWindowLong (hWnd, GWL_STYLE) mais cela me donne un type de variable LONG. Comment vérifieriez-vous un style spécifique à partir de cela dire un type de valeur const 'WS_CAPTION'?Obtention du style de fenêtre
3
A
Répondre
4
utiliser l'opérateur au niveau du bit à comparer avec & ce type long,
exemple
if (szLng & WS_CAPTION){
// that window has caption
}
0
La plupart des styles de fenêtre WS_ sont des valeurs-bit unique; qui est chacun d'entre eux occupe seulement un bit en dwStyles.
Ici dwStyles
peut être obtenu à partir de: DWORD dwStyles = CWnd::GetStyle();
Mais quelques-uns des styles de WS_, tels que WS_CAPTION
, WS_OVERLAPPEDWINDOW
, WS_POPUPWINDOW
, combiner quelques styles d'un seul bit.
Le code de test ci-dessous est valide pour les styles de fenêtre à bit unique mais pas OK
pour les styles combinés.
DWORD dwSomeStyle = WS_... ;
BOOL bSomeStyleIsPresentForThisWnd;
if (dwStyles & dwSomeStyle)
bSomeStyleIsPresentForThisWnd = TRUE;
else
bSomeStyleIsPresentForThisWnd = FALSE;
Ce n'est pas l'opérateur logique, mais l'opérateur * bitwise *. –
Oups, je suis corrigé. Merci – YOU