45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:加入VC++加速键的方法

加入VC++加速键的方法

2016-09-04 09:45:54 来源:www.45fan.com 【

加入VC++加速键的方法

-

 

有二种 一种是直接与菜单项关联的加速键 另一种就是自定义的加速键.

第一种: 首先在资源文件Accelerator中添加快捷键资源 ID选择你要关联菜单项的名称 然后再设置你的快捷键.什么?下一步?在.h文件中加入一个 HACCEL hAccel;变量 然后在OnInitDialog或初始化中加入hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU_MAIN)); 后面的参数改成加速键的资源文件名.

最后在PreTranslateMessage(MSG* pMsg) 中加入:
if(::TranslateAccelerator(GetSafeHwnd(),hAccel,pMsg))
return true;

这样 以后只要在Accelerator资源文件中添加快捷键就可以了 注意 添加快捷键的名字一定要与菜单名称一样 这样才能响应.现在只需要在此菜单项中加入OnCommand消息的处理就可以了.

 

第二种: 还是在资源文件Accelerator中添加快捷键资源 ID自己定义一个.然后再设置你的快捷键.下一步...就是在.h文件中定义一个快捷键对象
HACCEL m_hAccel;

然后在.cpp文件中初始
m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
IDR_ACCELERATOR1为你的加速资源名称.注意不是刚刚定义的加速键ID.

再添加PreTranslateMessage消息处理 在里面加入以下代码:
//保存快捷键被启用
if(m_hAccel != NULL)
{
if (TranslateAccelerator(m_hWnd, m_hAccel, pMsg))

return TRUE;

}

再添加OnCommand消息处理 加入以下代码:

//响应加速键
switch(LOWORD(wParam))
{
case SHOW_DIAL0G: //加速键ID
//...添加处理语句
break;
case SHOW_DIALOG_02: //加速键ID
//...添加处理语句
break;

}

ok!

-

 

本文地址:http://www.45fan.com/bcdm/72110.html
Tags: 方法 二种 VC++
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部