Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Сообщения управляющему элементу


Автор: Aline 19.7.2005, 08:36
Помогите, плиз, разобраться:
есть панель с кнопочками и полями ввода. Всё это было создано динамически, при запуске программы.
Требуется по нажатию одной кнопки сгенерировать программно следующие события: на кнопках - щелчок левой клавишей мыши, в полях ввода - нажатие на клавишу Enter на клавиатуре.
Догадываюсь, что нужно использовать WIN Api, но как? Никогда с этим раньше дела не имела....

Автор: _hunter 19.7.2005, 11:14
в разделе МСДН по оенам есть все сообщения, который принимают контролы. ищи нужное и посылай его ( Send/Post Message )

Автор: chaos 19.7.2005, 13:19
на случай если нет мсдн
Цитата

LRESULT SendMessage(
  HWND hWnd,      // handle of destination window
  UINT Msg,      // message to send
  WPARAM wParam,  // first message parameter
  LPARAM lParam  // second message parameter
);


WM_LBUTTONDOWN
fwKeys = wParam;        // key flags
xPos = LOWORD(lParam);  // horizontal position of cursor
yPos = HIWORD(lParam);  // vertical position of cursor

WM_LBUTTONUP
fwKeys = wParam;        // key flags
xPos = LOWORD(lParam);  // horizontal position of cursor
yPos = HIWORD(lParam);  // vertical position of cursor

WM_KEYDOWN
nVirtKey = (int) wParam;    // virtual-key code
lKeyData = lParam;

WM_KEYUP
nVirtKey = (int) wParam;    // virtual-key code
lKeyData = lParam;          // key data


привел парные события(Down/Up) тк правельней будет посылать сначала Down а потом Up тк не красиво будет послать только Down smile

Автор: Aline 19.7.2005, 13:53
Спасибо за советы, но только я пока всё равно не соображу как это правильно использовать smile
Нужно наверное обходить в панели компоненты, анализировать их тип, а потом уже генерить событие: либо щелчок мыши на нем либо клавиша Enter.
Я так понимаю?

Автор: _hunter 19.7.2005, 13:57
так

Автор: chaos 19.7.2005, 13:58
ну да!
я бы сдел так : взял бы два контейнера, в один складывал HWND кнопок, а в другой едитов и после нажатия какой-то там кнопки прошелся бы по всем элементам этих контейнеров и в зависимости от контейнера слал бы соответствующие сообщения!

Автор: Guest 19.7.2005, 14:27
chaos
ОК
Так и попробую сделать
Спасибо

Автор: Aline 19.7.2005, 14:28
chaos
smile
ОК
Так и попробую сделать
Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)