Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кнопка диалога нажата - как словить?


e!dGe. ©   (2003-05-19 19:26:00) 

Например, если по кнопке кликнули:

Result := False;
case Msg o"
WM_COMMAND:
case LoWord(WPar) of
IdEdtChButtn:
case HiWord(WPar) of
BN_CLICKED: PopupChangeMenu;
end;


e!dGe.   (2003-05-20 00:09:00) [1]

Всем спасибо, тема закрыта.


e!dGe.   (2003-05-19 23:36:00) [2]


> e!dGe. © (19.05.03 21:04)
> Можно, конечно, попробовать подменить её, чето не пробовал.

Чушь несете, батенька, зачем подменять, если уже..)


e!dGe.   (2003-05-19 21:04:00) [3]

DialogBox - все просто, с загрузкой из ресурса.
Оконная процедура - обычная DialogProc. Можно, конечно, попробовать подменить её, чето не пробовал.
Зато пробовал подменить оконную процедуру кнопки - нуль.
Чето вообще никак не пойму, что делать.
Ладно, седня если ещё зайду сюда - будет около 10 по Москве.


AlexRush   (2003-05-19 20:37:00) [4]

e!dGe. © (19.05.03 20:15)>> Хм.. Об этом я и не задумывался никогда. Вообще-то можно обрабатывать все события кнопки, как окна.

Приведи код, которым ты создаешь диалог. Как реализована оконная процедура ? Через TApplication или своя ?


e!dGe.   (2003-05-19 20:15:00) [5]


> AlexRush © (19.05.03 20:03)

+Знаешь, ничего нового, к сожалению.
Вопрос в чем:

wNotifyCode
Value of the high-order word of wParam. Specifies the notification code if the message is from a control.

Нужен wNotifyCode, который посылается родителю, если я кнопку нажал, но не отпустил. Такого уведомления нет. Например, BN_CLICKED - уведомление о том, что по кнопке кликнули. А о том, что её нажали...?


AlexRush   (2003-05-19 20:03:00) [6]

e!dGe. © (19.05.03 19:26)>>

WM_COMMAND wNotifyCode = HIWORD(wParam);
wID = LOWORD(wParam);
hwndCtl = (HWND) lParam;

wNotifyCode - если 1, то сообщение от акселератора, если 0 - от контрола.

wID - идентификатор контрола(меню) или акселератора
hwndCtl - HWND окна контрола, или 0


case Msg of
WM_COMMAND: begin
case wID of
....
IDC_MYBUTTON: HandleMyButtonWmCommand();
end;
end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо