Witam. Jak mogę sprawdzić, czy dany styl kontrolki jest aktywny? Zrobiłem na razie coś takiego, ale nie działa.
WINDOWINFO Info;
Info.cbSize = sizeof( WINDOWINFO );
GetWindowInfo(hwnd, &Info);
if( Info.dwStyle == ES_MULTILINE )
{
MessageBox(NULL, "", "", MB_OK);
}
//nie działa
oraz próbowałem też tak
UINT style = (UINT)GetWindowLong(hwnd, GWL_STYLE) ;
if( style == ES_MULTILINE )
{
MessageBox(NULL, "", "", MB_OK);
}
//tez nie dziala
Myślę, że błędnie sprawdzam, czy występuje dany styl. spowodowane jest to pewnie tym, że występuje więc niż 1 styl. Jak konkretnie sprawdzić, czy istnieje jeden z nich?
edit:
Znalazłem taki artykuł:
Alternatywa bitowa
Wynikiem alternatywy bitowej jest na danej pozycji jedynka w tedy gdy przynajmniej w jednej zmiennej na danej pozycji jest jedynka. W przeciwnym wypadku jest 0.
01101011 - zmienna1
11001101 - zmienna2
11101111 - wynik
Działa on na argumentach całkowitych
Składnia:
zmienna1 | zmienna2
Czyli w takim razie powinienem zrobić mniejwiecej tak?
UINT styl = (UINT)GetWindowLong(hwnd, GWL_STYLE
char kod1[sizeof(UINT)];
char kod2[sizeof(UINT)];
itoa(styl, kod1, 2);
itoa(ES_MULTILINE, kod2, 2);
//teraz sprawdzić, czy zgadza się wystapienie jedynek?
Niby to powinno działać, ale co zrobić, jeżeli kilka flag stworzy taki sam kod?
Musze tak zarządzić zmiennymi, aby do tego nie dopuścić?