VC/MFC中为程序定义全局快捷键

VC 2010-05-01 18:01:34 阅读287 评论0 字号:大中小 订阅

1、注册快捷键

在初始化函数,如OnInitDialog() 注册快捷键,代码如下:

#define HotKeyID1 200

BOOL CDlgCloseProSetup::OnInitDialog()

{

CDialog::OnInitDialog();

::RegisterHotKey(m_hWnd, HotKeyID1, NULL, VK_HOME);

return TRUE;

}

RegisterHotKey()第一个参数为句柄,第二个为快捷键ID号,可自己任意定义,第三个为控制键,若不需可设为NULL,第四个为字母或数字,同样不需时可设为NULL 。

2、添加以下消息:

3.在OnHotKey函数中写入

void CJsEditDlg::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(nHotKeyId == HotKeyID1)
{
OnBnClickedBtnkill();

}

CDialog::OnHotKey(nHotKeyId, nKey1, nKey2);
}

4.添加WM_CLOSE消息,在OnClose函数中写入


void CJsEditDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
UnregisterHotKey(GetSafeHwnd(), HotKeyID1);
CDialog::OnClose();
}

时间: 2024-07-28 23:55:26

VC/MFC中为程序定义全局快捷键的相关文章

在VC/MFC中嵌入Google地图——图文并茂

最近需要实验室需要将在无人机地面站中嵌入地图,在网上找了很多资料,终于有些眉目了, 首先,做这个需要用到的知识有,MFC控件.MFC类库.JavaScript脚本语言,Google API.Google离线地图:由于google离线地图不怎么会,首先从google在线地图开始. 下面总结一下这几天搞google地图的步骤,有附图,对MFC和JS脚本语言不懂的同学有用. 在线Google 地图步骤: (1).建立基于对话框的MFC工程. 由于我对MFC基本不了解,所以从网上下载了个例子,但是不知道

VC++ MFC中如何将应用程序的配置信息保存到注册表中(一)

注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.比如我们打开一个记事本,调整其窗口大小,使用完毕后关闭记事本,下次打开时大小和上次关闭前的大小和在屏幕上的位置是相同.这些位置和大小信息就是在记事本关闭时保存到注册表中,下次打开时我们从注册表中取出这些数据,并按照这些数据显示记事本程序的大小和位置信息. 下面教你如何使用GetProfileInt,WriteProfileInt,GetPro

VC++编程中为程序加入启动画面功能

 如何为自己的程序加入启动画面 观察我们平常使用的软件,当我们双击软件的时候,会在主界面出现前,先行出现一个启动画面,由于前一阵子写了一个基于对话框的程序,亲自实验了下,今天就为大家简单的介绍下,在我们的程序中如何实现增加启动画面的功能. 在这里说明说明一下,我们平常使用的编译器是VS2010 或者是VS2012,在早一点的版本中,例如vc6.0中,加入启动画面这一功能,编译器已经为我们封装好,我们直接使用他所提供的CSplashWnd类就行了.单击[Project\Add to Project

VC/MFC中的CComboBox控件使用详解

CComboBox控件详解 CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list). CComboBox控件的常用设置属性说明: type属性:里面一共有三个选项.就是其三种形式, 我们常用的是后两种形态,其区别就是Dropdown的编辑区为可编辑控件,而droplist为静态控件. Data属性:当程序初始化的时候,下拉列表将显示其属性里面的内容,内容用分号分隔.其属性

[转]关于VC++ MFC中的空闲Idle处理机制!

关键词: 先根据空闲标志以及消息队列是否为空这两个条件判断当前线程是否处于空闲状态(这个"空闲"的含义同操作系统的含义不同,是MFC自己所谓的"空闲"),如果是,就调用CWinThread::OnIdle(),这也是我们比较熟悉的一个虚拟函数. 如果不是,从消息队列中取出消息,进行处理,直到消息队列为空. /thrdcore.cpp // main running routine until thread exits int CWinThread::Run() {

vc++ mfc中拖动效果的实现 借助于CImageList

拖动是界面编程频繁使用的一个效果,在windows系统下可谓大行其道.纵观时下的应用软件几乎各个都支持各种各样拖动的效果,windows7更是把拖动做到了极致.其实说起来拖动的实现也很简单,对于有句柄的对象都可以通过MoveWindow或SetWindowPos实现位置变动,而没有句柄的对象实现拖动无非就是做些参数修改,说到底实现拖动就是在OnLButtonDown.OnMouseMove和OnLButtonUp中处理数据,当然你可以使用鼠标右键甚至中建消息来实现,基本原理是一样的.     

VC/MFC中通过CWebPage类调用javascript函数(给js函数传参,并取得返回值)

转自:http://www.cnblogs.com/javaexam2/archive/2012/07/14/2632959.html ①需要一个别人写好的类CWebPage,将其对于的两个文件WebPage.h和WebPage.cpp添加到工程中. CWebPage类头文件和实现文件下载地址: http://download.csdn.net/detail/masikkk/4427190 ②添加WebBrowser控件,在视图/对话框类的头文件中#include "webbrowser2.h&

VC MFC 中的字符串转换

// 宽字符转UTF8 string EncodeUtf8(wstring in) { string s(in.length()*3+1,' '); size_t len = ::WideCharToMultiByte(CP_UTF8, 0, in.c_str(), in.length(), &s[0], s.length(), NULL, NULL); s.resize(len); return s; } // UTF8 转宽字符 wstring DecodeUtf8(string in) {

vc mfc 中的listctrl控件 垂直滚动条置于最底端

int nCount = m_List1.GetItemCount(); if (nCount > 0) m_List1.EnsureVisible(nCount-1, FALSE);