информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetГде водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Серьезная уязвимость в Apache Log4j 
 Крупный взлом GoDaddy 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Сие есть тайна великая и непостижимая 29.11.02 18:06  Число просмотров: 1084
Автор: 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
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach