Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
[Win32] Сие есть тайна великая и непостижимая 29.11.02 18:06 Число просмотров: 1282
Автор: CZ Статус: Незарегистрированный пользователь
|
> убери MessageBox из ButtonProc и должно заработать > WM_COMMAND
Почему так MessageBox несправедливо поступает с бедным Buttonoм.
Другие окна вроде бы создаются(если MessageBox считать за окно/диалог ).
|
<programming>
|
[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
|
|
|