前提:我用VC2005 MFC基于对话框做了个记事本----在资源视图中添加menu方便加菜单项(新建,打开,保存等)---记事本代码都已经添加完成-已能运行但出现一个小小问题
错误:我在资源视图里添加了一个资源(IDR_ACCELE........)方便添加快捷键,但是添加完成运行的时候按快捷键不能用。
请问原因在那?我找了 好多方法 还是不行,菜鸟求助!
错误:我在资源视图里添加了一个资源(IDR_ACCELE........)方便添加快捷键,但是添加完成运行的时候按快捷键不能用。
请问原因在那?我找了 好多方法 还是不行,菜鸟求助!
大体的方法可以如下:
在对话框中增加一成员变量:
HACCEL m_hAccel
在OnInitDialog()函数中将快捷键加载:
m_hAccel = LoadAccelerators(AfxGetInstanceHandle( ),
MAKEINTRESOURCE(IDR_ACCELERATOR));
需要判断是否加载成功,即m_hAccel是否为NULL.
在PreTranslateMessage(MSG* pMsg)中处理快捷键的消息:
if (m_hAccel != NULL)
TranslateAccelerator(this->m_hWnd, m_hAccel, pMsg);
当然了,在对话框关闭时不能记了删除加载的快捷键:
if (m_hAccel != NULL)
DestroyAcceleratorTable(m_hAccel);
http://blog.csdn.net/jiazhen/archive/2008/03/21/2202397.aspx