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

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая: ===Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.=== ...)
(нет различий)

Версия 14:15, 30 июля 2008

Как в диалоговом 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);
}