求助:如何在对话框中加载Accelerator资源并使其发生作用? 加载资源(MFC的Dialog Based中):HACCEL hAcc = LoadAccelerators (m_hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1));但是该加速键表不起作用,如何才能让它发挥作用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要在PreTranslateMessage中一行if (TranslateAccelerator(GetSafeHwnd(), m_hAcc, pMsg))return TRUE; LoadAccelerators的结果最好保存在一个成员变量中。 方法一:http://support.microsoft.com/?kbid=2228291 插入一个新的Accelerator到资源里,把加速键和对应的响应控件(如一个按钮)关联2 在对话框头文件中声明: HACCEL m_hAccel;3 在对话框的构造函数里初始化m_hAccel m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));4 然后重载对话框的PreTranslateMessage函数,在BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg) { if (m_hAccelTable) { if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg)) { return(TRUE); } } return CDialog::PreTranslateMessage(pMsg);}也可以用RegisterHotKey,在FAQ里找,有详细的步骤 SetDllDirectory不能使用? 使用ProgIDFromCLSID的问题 如何调用同目录下的另一个文件 简单资源释放问题,请教 请高手指点Intel的JPEG-library(IJG)的用法. 深入使用过TreeView的同仁请进来帮帮忙!!!!!! 怎么样向文本文件中写入回车符和换行符? open gl问题 求教一个关于MFC中CListCtrl的问题 急! 网卡驱动程序是怎么回事,用什么语言编? 问一个较弱智的问题:一个控件的Visible置为FALSE和TRUE对于占用CPU的资源是不是一样!!! 在vc中怎样把execl表中的数据导入到SQL Server中!求救!!!
PreTranslateMessage中一行
if (TranslateAccelerator(GetSafeHwnd(), m_hAcc, pMsg))return TRUE;
http://support.microsoft.com/?kbid=222829
1 插入一个新的Accelerator到资源里,把加速键和对应的响应控件(如一个按钮)关联
2 在对话框头文件中声明:
HACCEL m_hAccel;
3 在对话框的构造函数里初始化m_hAccel
m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
4 然后重载对话框的PreTranslateMessage函数,在
BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg)
{
if (m_hAccelTable)
{
if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg))
{
return(TRUE);
}
}
return CDialog::PreTranslateMessage(pMsg);
}也可以用RegisterHotKey,在FAQ里找,有详细的步骤