程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> MFC下如何創建熱鍵

MFC下如何創建熱鍵

編輯:C++入門知識

首先,通過MFC的應用程序向導生成一個基於對話框的應用程序。

 

然後,在對話框類的OnInitDialog成員函數中注冊熱鍵。

::RegisterHotKey(m_hWnd, 001, MOD_ALT, VK_ESCAPE);

::全局作用符;

m_hwnd對話框句柄;

001熱鍵ID,這是一個整型值,可以隨便定義,也可以通過宏定義;

MOD_ALT表示通過組合鍵(ALT+VK)觸發,可選值還有MOD_SHIFT、MOD_WIN、MOD_NOREPEAT,設為NULL表示不使用組合鍵;

VK_ESCAPE是熱鍵的虛擬鍵碼,可根據需要定義。本例中使用鍵盤左上角的ESC鍵。

 

接著,重載PreTranslateMessage函數(注:該函數不能攔截SendMessage函數發來的消息)。

VC6.0中的具體做法是在類視圖中右鍵對話框類,選擇Add virtual Function,選中PreTranslateMessage後重載之。

 

最後,在函數體內敲入以下代碼,以便實現按下熱鍵後彈出消息框的功能。

switch (pMsg->message)
{
case WM_HOTKEY:
if (001 == pMsg->wParam)MessageBox("Welcome tohttp://hi.baidu.com/darks00n/");
break;
default:
break;
}

message是MSG消息結構的一個成員,代表消息類型,熱鍵的消息類型是WM_HOTKEY。

wParam為附加參數,當這個參數值等於001時就觸發我們的熱鍵,多個熱鍵就是通過該參數區分的。

 

OK!F5執行程序後同時按下ALT+ESC,成功彈出消息框。MFC下創建熱鍵是不是so easy?




作者 darks00n's秘密基地

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved