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

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

фокус на кнопке+нажать ее Enter^ом


Windows1 ©   (2005-10-06 13:48:00) 

как на апи по клавише Enter нажать на кнопку (procedure)
типа ButtonClick(self);
пока делаю в окне обработку клавиши Enter.
Работает если фокус на окне,а если на кнопке
-неработает (т.е после Setfocus(handleButton)).

А надо чтоб выделеная фокусом работала(


Leonid Troyanovsky   (2005-10-17 16:09:00) [1]


> Windows1   (17.10.05 15:38) [7]

> case Msg of
> WM_CHAR: /// OnEnter


WM_GETDLGCODE:

--
Regards, LVT.


Windows1   (2005-10-17 15:38:00) [2]

вот код как я делаю

function WndFunc(aWnd, Msg:......
begin
case Msg of
WM_CHAR: /// OnEnter
  Begin
  if Wparam=13 then ButtonClk;
  End;

procedure ButtonClk;
begin
......
halt;
end;

main....
Button:=CreateWindow('Button','OK'....
SetFocus(Button);  // если это убрать,то OnEnter (ButtonClk); работает

при фокусе на кнопку + нажать интер - непашет


wp2   (2005-10-15 22:27:00) [3]

Можно вообще нажать кнопку Enter
keybd_event(13, $45, KEYEVENTF_EXTENDEDKEY or 0, 0);
keybd_event(13, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0)

Если я конечно не ошибся...


ssk   (2005-10-15 17:32:00) [4]

SendMessage(Кнопка.Handle, BM_CLICK, 0, 0);


ANB   (2005-10-14 10:55:00) [5]

Во первых неправильно делаешь обработку. Но в твоем случае - пошли самому окну WM_CHAR VK_ENTER


Windows1   (2005-10-14 09:57:00) [6]

не неполучается фокус уже поставил на кнопке
(их две там),чтоб видно было какая кнопка в фокусе.
Но ведь при Enter форма уже не принимает сообщение WM_Char=enter !!!

Надо типа Button1.OnEnter=procedureClick1;


-=S..S=-   (2005-10-06 19:04:00) [7]


> clickmaker ©   (06.10.05 13:55) [1]

Вроде вопрос прозвучал на апи :)


> фокус на кнопке+нажать ее Enter^ом

Ищешь нужную тебе кнопку h := FindWindowEx(FindWindow('Form', 'TForm')...)
Потом делаешь SendMessage(h, (не помню точно какое там сообшение на нажатие левой кнопки мыши ) ... )
потом тоже самое токо для отпускания ...

вот и всё .. а кнопка сама фокус получит после всего этого ...
ENJOY :)


clickmaker   (2005-10-06 13:55:00) [8]

FormKeyDown()
 if (Key = VK_RETURN) then Button.Click;
у формы KeyPreview поставь true


Наверх

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