首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Windows 訊息完整參考表 (WM_ 系列詳細列表)

     編輯:關於C++

Windows 訊息機制概述

訊息是 Windows 通知應用程式發生事件的機制。每個訊息以 MSG (或 TMsg) 結構傳遞:


typedef struct tagMSG {
    HWND   hwnd;      // 視窗控制代碼
    UINT   message;   // 訊息常數識別碼
    WPARAM wParam;    // 32 位元附加資訊
    LPARAM lParam;    // 32 位元附加資訊
    DWORD  time;      // 訊息建立時間
    POINT  pt;        // 滑鼠位置
} MSG;

訊息常數完整列表 (十六進位值)

視窗管理 (0x0000 - 0x00FF)

常數值說明
WM_NULL0x0000空訊息,常用於 SendMessageTimeout 偵測掛住
WM_CREATE0x0001視窗建立
WM_DESTROY0x0002視窗銷毀
WM_MOVE0x0003視窗移動
WM_SIZE0x0005視窗大小改變
WM_ACTIVATE0x0006視窗啟動/失去啟動
WM_SETFOCUS0x0007獲得鍵盤焦點
WM_KILLFOCUS0x0008失去鍵盤焦點
WM_ENABLE0x000A啟用/停用狀態改變
WM_SETREDRAW0x000B設定是否重繪
WM_SETTEXT0x000C設定視窗文字
WM_GETTEXT0x000D取得視窗文字
WM_GETTEXTLENGTH0x000E取得文字長度
WM_PAINT0x000F要求重繪用戶區
WM_CLOSE0x0010關閉視窗/應用程式
WM_QUERYENDSESSION0x0011查詢是否允許結束工作階段
WM_QUIT0x0012結束程式 (PostQuitMessage)
WM_QUERYOPEN0x0013圖示還原查詢
WM_ERASEBKGND0x0014擦除背景
WM_SYSCOLORCHANGE0x0015系統色彩改變
WM_ENDSESSION0x0016工作階段結束通知
WM_SHOWWINDOW0x0018視窗顯示/隱藏
WM_ACTIVATEAPP0x001C應用程式啟動/失去啟動
WM_FONTCHANGE0x001D字型資源變更
WM_TIMECHANGE0x001E系統時間變更
WM_CANCELMODE0x001F取消模態操作

非用戶區與滑鼠 (0x0080 - 0x020F)

常數值說明
WM_NCCREATE0x0081非用戶區建立 (WM_CREATE 前)
WM_NCDESTROY0x0082非用戶區銷毀
WM_NCCALCSIZE0x0083計算用戶區大小/位置
WM_NCHITTEST0x0084滑鼠移動/按下/釋放時測試位置 (回傳 HTCAPTION 等)
WM_NCPAINT0x0085繪製非用戶區 (標題列、邊框)
WM_NCACTIVATE0x0086非用戶區啟動狀態改變
WM_GETDLGCODE0x0087對話框控制項鍵盤導航代碼
WM_NCMOUSEMOVE0x00A0非用戶區滑鼠移動
WM_NCLBUTTONDOWN0x00A1非用戶區左鍵按下
WM_NCLBUTTONUP0x00A2非用戶區左鍵釋放
WM_NCLBUTTONDBLCLK0x00A3非用戶區左鍵雙擊
WM_NCRBUTTONDOWN0x00A4非用戶區右鍵按下
WM_NCRBUTTONUP0x00A5非用戶區右鍵釋放
WM_NCRBUTTONDBLCLK0x00A6非用戶區右鍵雙擊
WM_NCMBUTTONDOWN0x00A7非用戶區中鍵按下
WM_NCMBUTTONUP0x00A8非用戶區中鍵釋放
WM_NCMBUTTONDBLCLK0x00A9非用戶區中鍵雙擊
WM_MOUSEFIRST0x0200滑鼠訊息起始
WM_MOUSEMOVE0x0200滑鼠移動
WM_LBUTTONDOWN0x0201左鍵按下
WM_LBUTTONUP0x0202左鍵釋放
WM_LBUTTONDBLCLK0x0203左鍵雙擊
WM_RBUTTONDOWN0x0204右鍵按下
WM_RBUTTONUP0x0205右鍵釋放
WM_RBUTTONDBLCLK0x0206右鍵雙擊
WM_MBUTTONDOWN0x0207中鍵按下
WM_MBUTTONUP0x0208中鍵釋放
WM_MBUTTONDBLCLK0x0209中鍵雙擊
WM_MOUSEWHEEL0x020A滑鼠滾輪
WM_MOUSELAST0x020A滑鼠訊息結束

鍵盤與系統按鍵 (0x0100 - 0x010F)

常數值說明
WM_KEYDOWN0x0100按下鍵
WM_KEYUP0x0101釋放鍵
WM_CHAR0x0102字元輸入 (經 TranslateMessage)
WM_DEADCHAR0x0103無效字元 (拼音鍵等)
WM_SYSKEYDOWN0x0104Alt+鍵 組合
WM_SYSKEYUP0x0105Alt+鍵 釋放
WM_SYSCHAR0x0106Alt+字元
WM_SYSDEADCHAR0x0107Alt+無效字元

選單、捲軸、計時器、對話框 (0x0110 - 0x0138)

常數值說明
WM_INITDIALOG0x0110對話框初始化
WM_COMMAND0x0111選單/控制項/快速鍵命令
WM_SYSCOMMAND0x0112系統選單命令 (最大化/最小化/關閉等)
WM_TIMER0x0113計時器事件
WM_HSCROLL0x0114水平捲軸事件
WM_VSCROLL0x0115垂直捲軸事件
WM_INITMENU0x0116選單即將啟動
WM_INITMENUPOPUP0x0117彈出選單即將啟動
WM_MENUSELECT0x011F選單項目選取
WM_MENUCHAR0x0120選單啟動時按鍵
WM_ENTERIDLE0x0121模態對話框/選單進入閒置
WM_CTLCOLORMSGBOX0x0132訊息方塊繪製前設定色彩
WM_CTLCOLOREDIT0x0133編輯控制項繪製前設定色彩
WM_CTLCOLORLISTBOX0x0134清單方塊繪製前設定色彩
WM_CTLCOLORBTN0x0135按鈕繪製前設定色彩
WM_CTLCOLORDLG0x0136對話框繪製前設定色彩
WM_CTLCOLORSCROLLBAR0x0137捲軸繪製前設定色彩
WM_CTLCOLORSTATIC0x0138靜態控制項繪製前設定色彩

剪貼板、調色板、DDE、應用程式自訂 (0x0300 - 0x8000+)

常數值說明
WM_CUT0x0300剪下
WM_COPY0x0301複製
WM_PASTE0x0302貼上
WM_CLEAR0x0303清除
WM_UNDO0x0304復原
WM_DESTROYCLIPBOARD0x0307清空剪貼板
WM_DRAWCLIPBOARD0x0308剪貼板內容變更
WM_PAINTCLIPBOARD0x0309繪製剪貼板內容
WM_QUERYNEWPALETTE0x030F實現邏輯調色板
WM_PALETTECHANGED0x0311調色板已改變
WM_HOTKEY0x0312熱鍵觸發 (RegisterHotKey)
WM_DDE_INITIATE0x03E0DDE 會話啟動
WM_DDE_TERMINATE0x03E1DDE 會話結束
WM_DDE_ADVISE0x03E2DDE 請求通知
WM_DDE_UNADVISE0x03E3DDE 取消通知
WM_DDE_ACK0x03E4DDE 確認
WM_DDE_DATA0x03E5DDE 資料傳遞
WM_DDE_REQUEST0x03E6DDE 請求資料
WM_DDE_POKE0x03E7DDE 未請求資料
WM_DDE_EXECUTE0x03E8DDE 執行命令
WM_USER0x0400應用程式自訂訊息起始
WM_APP0x8000應用程式自訂訊息起始 (不易衝突)

控制項通知訊息 (WM_COMMAND 高字/WM_NOTIFY)

按鈕 (BN_*)

  • BN_CLICKED, BN_DISABLE, BN_DOUBLECLICKED, BN_HILITE, BN_PAINT, BN_UNHILITE

下拉方塊 (CBN_*)

  • CBN_CLOSEUP, CBN_DBLCLK, CBN_DROPDOWN, CBN_EDITCHANGE, CBN_EDITUPDATE, CBN_ERRSPACE, CBN_KILLFOCUS, CBN_SELCHANGE, CBN_SELENDCANCEL, CBN_SELENDOK, CBN_SETFOCUS

編輯控制項 (EN_*)

  • EN_CHANGE, EN_ERRSPACE, EN_HSCROLL, EN_KILLFOCUS, EN_MAXTEXT, EN_SETFOCUS, EN_UPDATE, EN_VSCROLL

清單方塊 (LBN_*)

  • LBN_DBLCLK, LBN_ERRSPACE, LBN_KILLFOCUS, LBN_SELCANCEL, LBN_SELCHANGE, LBN_SETFOCUS

詳細參數與 wParam/lParam 含義請參考 MSDN《Windows Messages》對應項目。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved