если вы видите этот текст, отключите в настройках форума использование JavaScript
Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания .
Новичкам также крайне полезно ознакомиться с данным документом .
[Win32] Глупый вопрос 29.11.02 16:08
Автор: CZ Статус: Незарегистрированный пользователь
Создаю главное окно и 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);
то все нормально. В чем ошибка?
[Win32] Глупый вопрос 29.11.02 17:55
Автор: ggg <ggg> Статус: Elderman
убери MessageBox из ButtonProc и должно заработать WM_COMMAND
[Win32] Сие есть тайна великая и непостижимая 29.11.02 18:06
Автор: CZ Статус: Незарегистрированный пользователь
> убери MessageBox из ButtonProc и должно заработать > WM_COMMAND
Почему так MessageBox несправедливо поступает с бедным Buttonoм.
Другие окна вроде бы создаются(если MessageBox считать за окно/диалог ).
[Win32] Сие есть тайна великая и непостижимая 29.11.02 22:32
Автор: ggg <ggg> Статус: Elderman
так несправедливо поступит любой модальный диалог
перед тем как ты передашь lbuttonup, твой button получит ещё кучу сообщений от создаваемого диалога, типа killfocus & cancelmode