![]() |
Как сделать чтобы при нажатии на Ctrl+O и нажатии на кнопку "Открыть" происходило одно и тоже?
|
Назначить кнопке "Открыть" акселератор Ctrl+O?
|
hasherfrog
Да! Но именно не в MainMenu, а на обычню Button? |
Ну в Qt будет просто void QButton::setAccel ( const QKeySequence & ). Кстати по умолчанию многие контролсы (в том числе и кнопки) устанавляваю себе акселератор исходя из своего текста. Если в тексте есть значёчек &, то следующая буква станет "горячей" кнопкой. Если это не устраивает (например Ctrl+O для русского "&Открыть не сработает), воспользуйтесь ::setAccel.
|
Если пишешь на 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 кнопки, всё сработает как надо. |
Ок, спасибо !
|
Время: 23:03. |
Время: 23:03.
© OSzone.net 2001-