Создаю главное окно и Button.
Обработка Buttona следующая
LRESULT CALLBACK ButtonProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){
switch(uMsg){
...
case WM_LBUTTONUP:
MessageBox(0,"It works","Button",0);
return CallWindowProc(OButtonProc,hwnd,uMsg,wParam,lParam);
break;
...
default:
return CallWindowProc(OButtonProc,hwnd,uMsg,wParam,lParam);
}
return 0;
}
//Главное окно
LRESULT CALLBACK GraphBoardWindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){
switch(uMsg){
...
case WM_COMMAND:
switch (wParam){
case BUTTON1:
MessageBox(0,"This is command","o",0);
break;
}
case WM_CREATE:
Button=CreateWindow("BUTTON","CZ",WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON,0,0,
30,30,hwnd,NULL,0,0);
SetWindowLong(Button,GWL_ID,BUTTON1);
OButtonProc=(WNDPROC)GetWindowLong(Button,GWL_WNDPROC);
SetWindowLong(Button,GWL_WNDPROC,(long)ButtonProc);
....
ВОПРОС:Button работает, но gочему не срабатывает WM_COMMAND. Если убрать SetWindowLong(Button,GWL_WNDPROC,(long)ButtonProc);
то все нормально. В чем ошибка?
|