создаю checkbox и задаю для него свою оконную процедуру :
hCheckBox=CreateWindowEx(NULL,
"Button",
"win style",
WS_CHILD |WS_VISIBLE | BS_FLAT | BS_AUTOCHECKBOX |BS_NOTIFY,
10,
90,
80,
30,
hParentWnd,
(HMENU)IDC_CHECKBOX,
hInstance,
NULL);
pMainWndProcForchbx=(WNDPROC)SetWindowLong(hCheckBox,GWL_WNDPROC,(LONG)CheckBoxProc);
как мне в оконной процедуре checkbox'а получить его состояние?
я обрабатываю WM_LBUTTONDOWN :
case WM_LBUTTONUP :
{
LRESULT checked=SendMessage(hWnd,BM_GETCHECK,0L,0L);
if(checked==BST_CHECKED)
{
...
}else
if(checked==BST_UNCHECKED)
{
....
}
}
и получаю значения с точностью до наоборот
те сообщение обрабатывается до того как сменится состояние checkbox'а
как мне решить єту проблему?
зы мне надо получить правильное состояние checkbox'а именно
в его собственной оконной процедуре
про wm_command знаю — но его надо обрабатывать в процедуре родителя
Здравствуйте, tors, Вы писали:
LD>>Пошли сам себе событие BM_GETCHECK.
T>или я не понял ответ
T>или вы невнимательно прочли мой вопрос
T>в обработчике WM_LBUTTONUP в самом начале
T>я получаю состояние checkbox'а
T>с помощью єтого сообщения
Да, действительно я стормозил.