看流星社区

 找回密码
 注册账号
查看: 2260|回复: 0

VC添加全局热键的方法

[复制链接]

该用户从未签到

发表于 2015-4-18 19:15:55 | 显示全部楼层 |阅读模式
全局热键定义 VirtualKey.h 

/************************************************************************/  
// VirtualKey.H     By:lujianfei    2009.08.22  
// 定义热键  
#define IDH_HOT1        4001  
#define IDH_HOT2        4002  
#define IDH_HOT3        4003  
#define IDH_HOT4        4004  
#define IDH_HOT5        4005  
#define IDH_HOT6        4006  
#define IDH_HOT7        4007  
#define IDH_HOT8        4008  
#define IDH_HOT9        4009  
#define IDH_HOT10       4010  
#define IDH_HOT11       4011  
#define IDH_HOT12       4012  

在InitialDialog里面注册自定义的热键

RegisterHotKey(this->GetSafeHwnd(),IDH_HOT1, MOD_CONTROL, 'Q'); //CH$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT2, MOD_CONTROL, 'W'); //EN$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT3, MOD_CONTROL, 'E'); //BUSINESS1$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT4, MOD_CONTROL, 'R'); //BUSINESS2$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT5, MOD_CONTROL, 'T'); //BUSINESS3$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT6, MOD_CONTROL, 'Y'); //BUSINESS4$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT7, MOD_CONTROL, 'U'); //BUSINESS5$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT8, MOD_CONTROL, 'I'); //BUSINESS6$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT9, MOD_CONTROL, 'O'); //NUM1$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT10, MOD_CONTROL, 'P'); //NUM2$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT11, MOD_CONTROL, 'A'); //NUM3$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT12, MOD_CONTROL, 'S'); //NUM4$  
    RegisterHotKey(this->GetSafeHwnd(),IDH_HOT13, MOD_CONTROL, 'D'); //NUM5$  

在PreTranslateMessage方法里添加全局热键的事件响应

BOOL CLedControllerDlg::PreTranslateMessage(MSG* pMsg)   
{// TODO: Add your specialized code here and/or call the base class  
    char buffer[20];  
    if( WM_HOTKEY == pMsg->message )  
    {  
        switch(pMsg->wParam)  
        {  
        case IDH_HOT1:  
            strcpy(buffer,"CH$");  
            break;  
        case IDH_HOT2:  
            strcpy(buffer,"EN$");  
            break;  
        case IDH_HOT3:  
            strcpy(buffer,"BUSINESS1$");  
            break;  
        case IDH_HOT4:  
            strcpy(buffer,"BUSINESS2$");  
            break;  
        case IDH_HOT5:  
            strcpy(buffer,"BUSINESS3$");  
            break;  
        case IDH_HOT6:  
            strcpy(buffer,"BUSINESS4$");  
            break;  
        case IDH_HOT7:  
            strcpy(buffer,"BUSINESS5$");  
            break;  
        case IDH_HOT8:  
            strcpy(buffer,"BUSINESS6$");  
            break;  
        case IDH_HOT9:  
            strcpy(buffer,"NUM1$");  
            break;  
        case IDH_HOT10:  
            strcpy(buffer,"NUM2$");  
            break;  
        case IDH_HOT11:  
            strcpy(buffer,"NUM3$");  
            break;  
        case IDH_HOT12:  
            strcpy(buffer,"NUM4$");  
            break;  
        case IDH_HOT13:  
            strcpy(buffer,"NUM5$");  
            break;  
        }  
    }  
    return CDialog::PreTranslateMessage(pMsg);  
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-26 00:09

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表