Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как сделать соответствие кнопки и клавиши (http://forum.oszone.net/showthread.php?t=29772)

fossil 22-04-2004 10:58 205730

Как сделать чтобы при нажатии на Ctrl+O и нажатии на кнопку "Открыть" происходило одно и тоже?

hasherfrog 22-04-2004 11:40 205731

Назначить кнопке "Открыть" акселератор Ctrl+O?

fossil 22-04-2004 14:16 205732

hasherfrog
Да!
Но именно не в MainMenu, а на обычню Button?

hasherfrog 22-04-2004 14:44 205733

Ну в Qt будет просто void QButton::setAccel ( const QKeySequence & ). Кстати по умолчанию многие контролсы (в том числе и кнопки) устанавляваю себе акселератор исходя из своего текста. Если в тексте есть значёчек &, то следующая буква станет "горячей" кнопкой. Если это не устраивает (например Ctrl+O для русского "&Открыть не сработает), воспользуйтесь ::setAccel.

pva 29-04-2004 14:29 205734

Если пишешь на C++Builder, проще сделать Action.
Если на API, то присвой кнопке ID акселератора или наоборот.
Например: id=0x101
wndproc(hwnd, umsg, wparam, lparam)
switch(umsg) {
 case 0x00000101 :
   do_the_close_action(...);
   break;
}

Когда прийдёт событие
umsg=WM_COMMAND;
wparam=0x00000101;
lparam=0 или HWND кнопки,
всё сработает как надо.

fossil 29-04-2004 16:00 205735

Ок, спасибо !


Время: 23:03.

Время: 23:03.
© OSzone.net 2001-