
MFC的Accelerator问题(在线等,急!!!)
我在MFC对话框设计时在ResourceView右键添加了一个Accelerator,然后应该怎么关联到我的主窗口(默认是关联到关于窗口)。补充一点:我试过用ClassW...
我在MFC对话框设计时在Resource View右键添加了一个Accelerator,然后应该怎么关联到我的主窗口(默认是关联到关于窗口)。
补充一点:我试过用Class Wizard,但每一次打开它都叫我选择一个类关联,似乎是因为没有关联成功,我添加的加速键也是关联到关于窗口。应该不是VC的问题,因为我用同学的电脑也是如此。 展开
补充一点:我试过用Class Wizard,但每一次打开它都叫我选择一个类关联,似乎是因为没有关联成功,我添加的加速键也是关联到关于窗口。应该不是VC的问题,因为我用同学的电脑也是如此。 展开
展开全部
我给你个对话框的步骤:
1、在CxxxApp中添加变量HACCEL m_hAccelerator;// 加速键结构体
2、在BOOL CxxxApp::InitInstance()中添加加载项
// 关联加速键
m_hAccelerator=LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACC_MYACC));
3、在BOOL CxxxApp::ProcessMessageFilter(int code, LPMSG lpMsg) 中进行消息处理
{
if (code < 0) CWinApp::ProcessMessageFilter(code, lpMsg);
//-----------------------------------------------------
// 映射加速键
if (m_pMainWnd->m_hWnd)
{
if(m_hAccelerator)
if (::TranslateAccelerator(m_pMainWnd->m_hWnd, m_hAccelerator, lpMsg))
return(TRUE);
}
return CWinApp::ProcessMessageFilter(code, lpMsg);
}
1、在CxxxApp中添加变量HACCEL m_hAccelerator;// 加速键结构体
2、在BOOL CxxxApp::InitInstance()中添加加载项
// 关联加速键
m_hAccelerator=LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACC_MYACC));
3、在BOOL CxxxApp::ProcessMessageFilter(int code, LPMSG lpMsg) 中进行消息处理
{
if (code < 0) CWinApp::ProcessMessageFilter(code, lpMsg);
//-----------------------------------------------------
// 映射加速键
if (m_pMainWnd->m_hWnd)
{
if(m_hAccelerator)
if (::TranslateAccelerator(m_pMainWnd->m_hWnd, m_hAccelerator, lpMsg))
return(TRUE);
}
return CWinApp::ProcessMessageFilter(code, lpMsg);
}
展开全部
1 LoadAccelerators加载新添加的加速键
2 TranslateAccelerator将加速键翻译为命令消息
以上调用在消息处理中进行,如虚函数PreTranslateMessage中
2 TranslateAccelerator将加速键翻译为命令消息
以上调用在消息处理中进行,如虚函数PreTranslateMessage中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-06-22
展开全部
选择一个窗口关联上去吧,因为如果你不关联,这个快捷键消息就不知道该发给哪个HWND了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打开类向导后,选择主窗口类进行关联,然后添加消息处理函数,然后做下测试就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询