首页
社区
课程
招聘
[求助]关于快捷键的设置
发表于: 2007-8-1 11:33 4487

[求助]关于快捷键的设置

2007-8-1 11:33
4487
 
比如,在对话框里怎么给按扭加上快捷键,比如直接敲 Enter 就会响应,弹出一个框 

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
2
是给一个没有源码的exe加吗?还是你有源码?
2007-8-1 12:17
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
给一个有源码的exe加
2007-8-1 13:48
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你的意思是处理热键吗 以前用过你看下面的部分是不是对有用...
2007-8-1 15:01
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵源代码如果需要的话可以PM我

热键处理

在*Dlg.h中的设置如下
    class CMyDlg : public CDialog
    {
         public:
             int HotKeyID=100;;//定义的一个唯一的hot key的ID值

         //{{AFX_MSG(CMyDlg)
         virtual BOOL OnInitDialog();
         afx_msg LONG OnHotKey(WPARAM wParam,LPARAM lParam);//手动加入OnHotKey函数的声明
         //}}AFX_MSG   
         DECLARE_MESSAGE_MAP()
    };
   
在*Dlg.cpp中的设置如下

    BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
         //{{AFX_MSG_MAP(CHotKey1Dlg)

         ON_MESSAGE(WM_HOTKEY,OnHotKey)                     //手动加入WM_HOTKEY消息跟处理函数的映射

         //}}AFX_MSG_MAP
    END_MESSAGE_MAP()

    BOOL CMyDlg::OnInitDialog()
    {
             RegisterHotKey(GetSafeHwnd(),HotKeyID,MOD_CONTROL,VK_F10);//注册热键
    }

    RegisterHotKey函数原型及说明:

    BOOL RegisterHotKey( HWND hWnd, int id, UINT fsModifiers,UINT vk)

    hWnd 接收WM_HOTKEY的窗口句柄,id是 hot key的ID号,fsModifiers为响应那个热键,vk是与热键配合的键

然后处理消息函数

        LONG CMyDlg::OnHotKey(WPARAM wParam,LPARAM lParam)                //热键函数
        {
                ::ShowWindow(m_hWnd,SW_SHOW);                                //显示窗口
                    return 0;
        }
   
   
在退出程序时撤消热键的注册

        void CMyDlg::OnCancel()
        {
                UnregisterHotKey(GetSafeHwnd(), HotKeyID);//撤消热键注册
                CDialog::OnCancel();
        }

这样热键部分就可以了,当然也可以套用上面的步骤对其它消息进行处理
2007-8-1 15:02
0
游客
登录 | 注册 方可回帖
返回
//