![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обращаться к окнам созданным с помощью CreateWindow? [D6, WinXP]
Forelli © (2004-08-11 22:51:00)Создал кнопку CreateWindows'ом. Как присвоить этой кнопке определённое событие onClick?
nikkie (2004-08-13 17:48:00) [1]вот насоветовали...
какие-такие buttondown/buttonup, какие меню??
BN_CLICKED
The BN_CLICKED notification code is sent when the user clicks a button.
The parent window of the button receives the BN_CLICKED notification code through the WM_COMMAND message.
ZrenBy (2004-08-12 10:45:00) [2]1. SetWindowLong(hButton,GWL_ID,ID_MYBUTTON);
2. case WM_COMMAND:
switch(LOWORD(wParam)){
case ID_MYBUTTON:
. . .
break;
. . .
KADAN (2004-08-12 08:40:00) [3]когда создаешь кнопку задать ей hMenu (к примеру 12345) затем в WndProc родительского окна обрабатывать сообщение WM_COMMAND (в WParam содержится заданное для контрола значение hMenu) если WParam = 12345 тогда вызвать процедуру onClick.
второй вариант: подменить у кнопки WndProc и обрабатывать WM_CLICK, но при этом самому придется запоминать ее текущую WndProc и вызывать ее из своей.
3APA3A (2004-08-11 23:37:00) [4]Перехватывающий код должен находится в процедуре окна. Примерно так...
case Msg of
WM_LBUTTONDOWN : ...
WM_RBUTTONDOWN : ...
И т.д.
Dimaxx (2004-08-11 23:00:00) [5]Перехватывать все события WM_LBUTTONDOWN и WM_RBUTTONDOWN и отслеживать, что нажали именно нужную кнопку.