Establishment of the hot key...

     WM_HOTKEY并不包含在Class Wizard中,如果要设置这个消息,必须手工添加。假设Project的名字是Temp,那么操作如下:
    1、在TempView.h文件中消息映射的说明处加入热键消息处理函数的声明。
           //{{AFX_MSG(CTempView)
           afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
           afx_msg void OnDestroy();
            afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
            afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
            afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
            afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
            afx_msg void OnKillFocus(CWnd* pNewWnd);
            afx_msg void OnMouseMove(UINT nFlags, CPoint point);
            afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
            //}}AFX_MSG
            LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);//此句为加入内容,声明热键消息处理函数。
            DECLARE_MESSAGE_MAP()

           2、 接着在TempView.cpp中消息映射的定义处是用消息映射宏指定热键消息WM_HOTKEY的消息处理函数。
            BEGIN_MESSAGE_MAP(CTempView, CView)
             //{{AFX_MSG_MAP(CTempView)
             ON_WM_CHAR()
             ON_WM_DESTROY()
             ON_WM_CREATE()
             ON_WM_KEYDOWN()
             ON_WM_KEYUP()
             ON_WM_HSCROLL()
             ON_WM_KILLFOCUS()
             ON_WM_MOUSEMOVE()
             ON_WM_LBUTTONUP()
             //}}AFX_MSG_MAP
            ON_MESSAGE(WM_HOTKEY,OnHotKey) //此句为手工加入内容,指定了热键消息的处理函数。
            END_MESSAGE_MAP()
           3、在 OnCreate()函数中登记热键[*]。
           int CTempView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
           {
            if (CView::OnCreate(lpCreateStruct) == -1)
             return -1;
 
            // TODO: Add your specialized creation code here
           ::RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,'*');//登记热键
            return 0;
           }
           4、在TempView.cpp中编写OnHotKey()函数,当按下热键[*]时程序变为前台,并跳出一个消息框。
            LRESULT CTempView::OnHotKey(WPARAM wParam,LPARAM lParam)
            {
                if(wParam==1001)
                    MessageBox("I have been activated!!");
                return 0;
            }
            
5、注销热键,释放系统资源.
            void CTempView::OnDestroy() 
            {
             CView::OnDestroy();
 
             // TODO: Add your message handler code here
             UnregisterHotKey(m_hWnd,1001);//注销热键,释放系统资源.

            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值