FAQ:WinAPI VCPP:акселераторы в MFC приложении — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая: ===Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.=== ...)
 
 
Строка 28: Строка 28:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
[[Category:FAQ:WinAPI VCPP]]
+
[[Category:FAQ:WinAPI VCPP]] [[Category:FAQ:MFC]]

Текущая версия на 22:09, 3 октября 2009

Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.

class TestDlg : public CDialog
{
	HACCEL accelerators;
public:
	enum{IDD = IDD_TEST_DIALOG};
	TestDlg(CWnd* pParent);
	virtual BOOL PreTranslateMessage(MSG* pMsg);
};
 
TestDlg::TestDlg(CWnd* pParent) : CDialog(TestDlg::IDD, pParent)
{
	//загрузаем из ресурса
	accelerators = LoadAccelerators(
					AfxGetInstanceHandle(),
					MAKEINTRESOURCE(IDR_ACCELERATOR));
}
 
BOOL TestDlg::PreTranslateMessage(MSG* pMsg)
{
	//обработка акселераторов
	if( TranslateAccelerator(m_hWnd, AccelTable, pMsg) )return true;
 
	return CDialog::PreTranslateMessage(pMsg);
}