Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

горячие клавиши в приложении

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
kmdm229



Зарегистрирован: 20.03.2006
Сообщения: 4

СообщениеДобавлено: Пн Мар 20 2006 19:17    Заголовок сообщения: горячие клавиши в приложении Ответить с цитатой

Мне нужно, чтоб по горячим клавишам, например "ALT+Q" определенному мной окну передавалось сообщение. Как огранизовать перехват нажатых клавиш в Windows. Среда программирования VC.NET
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
OI



Зарегистрирован: 28.03.2006
Сообщения: 2

СообщениеДобавлено: Ср Мар 29 2006 12:13    Заголовок сообщения: Re: горячие клавиши в приложении Ответить с цитатой

kmdm229 писал(а):
Мне нужно, чтоб по горячим клавишам, например "ALT+Q" определенному мной окну передавалось сообщение. Как огранизовать перехват нажатых клавиш в Windows. Среда программирования VC.NET

А с этим вопросом вы уже тоже справились самостоятельно? Если не добрались, почитайте про WM_HOTKEY, RegisterHotKey и MsgWaitForMultipleObjects. Думаю, это то.
А если уже сделали, то напишите коротко как, если не сложно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kmdm229



Зарегистрирован: 20.03.2006
Сообщения: 4

СообщениеДобавлено: Чт Мар 30 2006 20:46    Заголовок сообщения: Re: горячие клавиши в приложении Ответить с цитатой

OI писал(а):
kmdm229 писал(а):
Мне нужно, чтоб по горячим клавишам, например "ALT+Q" определенному мной окну передавалось сообщение. Как огранизовать перехват нажатых клавиш в Windows. Среда программирования VC.NET

А с этим вопросом вы уже тоже справились самостоятельно? Если не добрались, почитайте про WM_HOTKEY, RegisterHotKey и MsgWaitForMultipleObjects. Думаю, это то.
А если уже сделали, то напишите коротко как, если не сложно.

Конечно не сложно.
я сделал это так:
class CAltTabDlg : public CDialog{ ... UINT m_nIDHotKey; //Идентификатор горячей клавиши // Generated message map functions //{{AFX_MSG(CAltTabDlg) ... afx_msg LRESULT OnHotKey(WPARAM wp, LPARAM lp); //}}AFX_MSG DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE_MAP(CAltTabDlg, CDialog) //{{AFX_MSG_MAP(CAltTabDlg) ... //Это сообщение ( WM_HOTKEY )посылается когда пользователь нажимает горячие клавиши //зарегистрированные RegisterHotKey ON_MESSAGE(WM_HOTKEY, OnHotKey) ... //}}AFX_MSG_MAPEND_MESSAGE_MAP()BOOL CAltTabDlg::OnInitDialog(){ ... //Регистрируем "Alt + Tab" как свой hot key (Alt + Tab) m_nIDHotKey = GlobalAddAtom("PressingAltTab"); TRACE("m_nIDHotKey = %d\n", m_nIDHotKey); RegisterHotKey(m_hWnd, m_nIDHotKey, MOD_ALT, VK_TAB); ...}LRESULT CAltTabDlg::OnHotKey(WPARAM wp, LPARAM lp){ TRACE(_T("CAltTabDlg::OnHotKey\n")); if ( wp == m_nIDHotKey && !IsWindowVisible()) { ShowWindow(SW_SHOWNORMAL); } return 0;}
только после этого необходимо удалить зарегистрированную клмбинацию
void CAltTabDlg::OnDestroy() { CDialog::OnDestroy(); UnregisterHotKey(m_hWnd, m_nIDHotKey); }
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...