阅读:1592回复:8
如何实现快捷键
我在对话框的菜单里面定义了快捷键close\\tCtrl+T,可是却实现不了,需要进行什么样的操作呢
望各位高手指点,最好能给出实例 |
|
沙发#
发布于:2005-05-25 12:28
在资源->Accelerator中加一项,ID与close的ID相同,呵呵,不用多解释了吧!
|
|
|
板凳#
发布于:2005-05-25 12:53
可是没有用啊
|
|
地板#
发布于:2005-05-25 12:57
LoadAccelerators
|
|
|
地下室#
发布于:2005-05-25 12:59
你是不是没调用这个函数?
|
|
|
5楼#
发布于:2005-05-25 14:11
那我先
BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog(); ...... // Load accelerators m_hAccel = ::LoadAccelerators(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR1)); ASSERT(m_hAccel); return TRUE; } 然后 BOOL CUsbDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST) { HACCEL hAccel=m_hAccel; if (hAccel && ::TranslateAccelerator(m_hWnd, hAccel, pMsg)) return TRUE; } return CDialog::PreTranslateMessage(pMsg); } 可是为什么总出现错误 error C2065: \'m_hAccel\' : undeclared identifier error C2440: \'initializing\' : cannot convert from \'int\' to \'struct HACCEL__ *\' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast [编辑 - 5/25/05 by sailor19840309] |
|
6楼#
发布于:2005-05-25 14:51
搞定了,谢谢了
|
|
7楼#
发布于:2005-05-25 15:22
楼主真有闲情逸致,问问题还吐两次舌头。 :P :P :P :P
在类中要声明HACCEL m_hAccel; |
|
|
8楼#
发布于:2005-05-26 08:13
呵呵,见笑了
|
|