Определение состояния переключателя
Обычно в одном окне располагаются несколько переключателей, которые пользователь может перевести в то или иное состояние. В этом окне также обычно размещается прямоугольная кнопка, которую пользователь должен нажать, после того как он установит переключатели в нужное состояние. Обработчик извещения от этой кнопки должен определить текущее состояние переключателей и выполнить действия, которые зависят от этого состояния. В некоторых случаях используется другая методика, когда сразу после изменения состояния какого-либо переключателя приложение выполняет соответствующие действия.
Например, приложение может разместить в окне три переключателя для изменения цвета окна. Цвет может изменяться сразу после изменения состояния переключателей либо после того, как пользователь установит все переключатели в нужное положение и нажмет кнопку с надписью OK.
Для определения текущего состояния переключателя в окно переключателя необходимо послать сообщение BM_QUERYCHECK (оба параметра этого сообщения не используются и должны быть равны нулю):
USHORT usState; usState = (USHORT)WinSendMsg (hWndCheckBox, BM_QUERYCHECK, MPFROMSHORT(0), NULL);
После того как в приведенном выше примере функция WinSendMsg возвратит управление, в переменную usState будет записано состояние кнопки:
Значение | Состояние переключателя |
0 | Выключен и изображается без галочки |
1 | Включен и отмечен галочкой |
2 | Находится в неопределенном состоянии |