WINDOWS消息大全

由Thinkboy提供
表A-1 Windows消息分佈

消息範圍
說 明

0 ~ WM_USER – 1
系統消息

WM_USER ~ 0x7FFF
自定義窗口類整數消息

WM_APP ~ 0xBFFF
應用程序自定義消息

0xC000 ~ 0xFFFF
應用程序字符串消息

> 0xFFFF
爲以後系統應用保留


表A-2 常用Windows消息

消息名稱

說 明

WM_NULL
0x0000
空消息,此消息將被接收窗口忽略

WM_CREATE
0x0001
應用程序創建一個窗口

WM_DESTROY
0x0002
一個窗口被銷燬

WM_MOVE
0x0003
移動一個窗口

WM_SIZE
0x0005
改變一個窗口的大小

WM_ACTIVATE
0x0006
一個窗口被激活或失去激活狀態

WM_SETFOCUS
0x0007
獲得焦點後

WM_KILLFOCUS
0x0008
失去焦點

WM_ENABLE
0x000A
應用程序Enable狀態改變時產生

WM_SETREDRAW
0x000B
設置窗口是否能重畫

WM_SETTEXT
0x000C
應用程序發送此消息來設置一個窗口的文本

WM_GETTEXT
0x000D
應用程序發送此消息來複制對應窗口的文本到緩衝區

WM_GETTEXTLENGTH
0x000E
得到與一個窗口有關的文本的長度(不包含空字符)

WM_PAINT
0x000F
要求一個窗口重繪自己

WM_CLOSE
0x0010
當一個窗口或應用程序要關閉時發送一個信號

WM_QUERYENDSESSION
0x0011
用戶選擇結束對話框或應用程序自己調用ExitWindows()函數

WM_QUIT
0x0012
用來結束程序運行或應用程序調用Postquitmessage()函數來產生此消息

WM_QUERYOPEN
0x0013
當用戶窗口恢復以前的大小位置時,把此消息發送給某個圖標

WM_ERASEBKGND
0x0014
當窗口背景必須被擦除時(例如在窗口改變大小時)

WM_SYSCOLORCHANGE
0x0015
當系統顏色改變時,發送此消息給所有頂級窗口

WM_ENDSESSION
0x0016
當系統進程發出WM_QUERYENDSESSION消息後,此消息發送給應用程序

WM_SHOWWINDOW
0x0018
當隱藏或顯示窗口是發送此消息給這個窗口

WM_ACTIVATEAPP
0x001C
當某個窗口將被激活時,將被激活窗口和當前活動(即將失去激活)窗口會收到此消息,發此消息給應用程序哪個窗口是激活的,哪個是非激活的

WM_FONTCHANGE
0x001D
當系統的字體資源庫變化時發送此消息給所有頂級窗口

WM_TIMECHANGE
0x001E
當系統的時間變化時發送此消息給所有頂級窗口

WM_CANCELMODE
0x001F
發送此消息來取消某種正在進行的操作

WM_SETCURSOR
0x0020
如果鼠標引起光標在某個窗口中移動且鼠標輸入沒有被捕獲時,發消息給該窗口

WM_MOUSEACTIVATE
0x0021
當光標在某個非激活的窗口中而用戶正按着鼠標的某個鍵發送此消息給當前窗口

WM_CHILDACTIVATE
0x0022
發送此消息給MDI子窗口當用戶點擊此窗口的標題欄,或當窗口被激活、移動、改變大小

WM_QUEUESYNC
0x0023
此消息由基於計算機的訓練程序發送,通過WH_JOURNALPALYBACK的Hook程序分離出用戶輸入消息

WM_GETMINMAXINFO
0x0024
當窗口要將要改變大小或位置時,發送此消息給該窗口

WM_PAINTICON
0x0026
當窗口圖標將要被重繪時,發送此消息給該窗口

WM_ICONERASEBKGND
0x0027
在一個最小化窗口的圖標在重繪前,當圖標背景必須被重繪時,發送此消息給該窗口

WM_NEXTDLGCTL
0x0028
發送此消息給一個對話框程序以更改焦點位置

WM_SPOOLERSTATUS
0x002A
當打印管理列隊增加或減少一條作業時發出此消息

WM_DRAWITEM
0x002B
當Button,ComboBox,Listbox,Menu控件的外觀改變時,發送此消息給這些控件的所有者

WM_MEASUREITEM
0x002C
當Button,ComboBox,list box,ListView,Menu 項被創建時,發送此消息給控件的所有者

WM_DELETEITEM
0x002D
當ListBox 或 ComboBox 被銷燬或當某些項通過發送LB_DELETESTRING、LB_RESETCONTENT、 CB_DELETESTRING、CB_RESETCONTENT 消息被刪除時,發送此消息給控件的所有者

WM_VKEYTOITEM
0x002E
一個具有LBS_WANTKEYBOARDINPUT風格的ListBox控件發送此消息給它的所有者,以此來響應WM_KEYDOWN消息

WM_CHARTOITEM
0x002F
一個具有LBS_WANTKEYBOARDINPUT風格的ListBox控件發送此消息給它的所有者,以此來響應WM_CHAR消息

WM_SETFONT
0x0030
應用程序繪製控件時,發送此消息得到以何種字體繪製控件中的文本

WM_GETFONT
0x0031
應用程序發送此消息得到當前控件繪製文本的字體

WM_SETHOTKEY
0x0032
應用程序發送此消息讓一個窗口與一個熱鍵相關聯

WM_GETHOTKEY
0x0033
應用程序發送此消息來判斷熱鍵與某個窗口是否有關聯

WM_QUERYDRAGICON
0x0037
此消息發送給最小化窗口,當此窗口將要被拖放而它的類中沒有定義圖標,應用程序就返回一個圖標或光標的句柄,當用戶拖放圖標時系統顯示這個圖標或光標

WM_COMPAREITEM
0x0039
發送此消息來判定ComboBox或ListBox新增加的項的相對位置

WM_COMPACTING
0x0041
顯示內存已經很少了

WM_WINDOWPOSCHANGING
0x0046
當調用SetWindowPos()函數改變窗口的大小和位置後,發送此消息給該窗口

WM_POWER
0x0048
當系統將進入掛起狀態時發送此消息給所有進程

WM_COPYDATA
0x004A
當一個應用程序傳遞數據給另一個應用程序時發送此消息

WM_CANCELJOURNAL
0x004B
當某個用戶取消程序日誌激活狀態,發送此消息給應用程序

WM_NOTIFY
0x004E
當某個控件的某個事件已經發生或這個控件需要得到一些信息時,發送此消息給它的父窗口

WM_INPUTLANGCHANGEREQUEST
0x0050
當用戶選擇某種輸入語言,或輸入語言的熱鍵改變

WM_INPUTLANGCHANGE
0x0051
當應用程序輸入語言改變後發送此消息給受影響的最頂級窗口

WM_TCARD
0x0052
當應用程序已經初始化Windows幫助例程時發送此消息給應用程序

WM_HELP
0x0053
當用戶按下了F1,如果某個菜單是激活的,就發送此消息給此窗口關聯的菜單,否則就發送給有焦點的窗口,如果當前都沒有焦點,就把此消息發送給當前激活的窗口

WM_USERCHANGED
0x0054
當用戶已經登錄或退出後發送此消息給所有的窗口,當用戶登錄或退出時系統更新用戶的具體設置信息,在用戶更新設置時系統馬上發送此消息

WM_NOTIFYFORMAT
0x0055
公用控件和它們的父窗口通過此消息來判斷在WM_NOTIFY消息中是使用ANSI還是UNICODE形式的結構,使用此控件能使某個控件與它的父控件進行相互通信

WM_CONTEXTMENU
0x007B
當用戶在某個窗口中點擊右鍵,則發送此消息給該窗口

WM_STYLECHANGING
0x007C
當將要調用SetWindowLong()函數窗口的一個或多個風格時,發送此消息給該窗口

WM_STYLECHANGED
0x007D
當調用SetWindowLong()函數改變了窗口的一個或多個風格後,發送此消息給該窗口

WM_DISPLAYCHANGE
0x007E
當顯示器的分辨率改變後發送此消息給所有的窗口

WM_GETICON
0x007F
發送此消息給某個窗口,返回與某個窗口有關聯的大圖標或小圖標的句柄

WM_SETICON
0x0080
應用程序發送此消息讓一個新的大圖標或小圖標與某個窗口關聯

WM_NCCREATE
0x0081
當某個窗口第一次被創建時,此消息在WM_CREATE消息被髮送前發送

WM_NCDESTROY
0x0082
此消息通知某個窗口,正在銷燬非客戶區

WM_NCCALCSIZE
0x0083
當計算某個窗口的客戶區大小和位置時發送此消息

WM_NCHITTEST
0x0084
移動鼠標,按住或釋放鼠標時產生此消息

WM_NCPAINT
0x0085
當某個窗口的框架必須被繪製時,應用程序發送此消息給該窗口

WM_NCACTIVATE
0x0086
通過改變某個窗口的非客戶區來表示窗口是處於激活還是非激活狀態時,此消息被髮送給該窗口

WM_NCMOUSEMOVE
0x00A0
當光標在窗口的非客戶區(窗口標題欄及邊框)內移動時發送此消息給該窗口

WM_NCLBUTTONDOWN
0x00A1
當光標在窗口的非客戶區並按下鼠標左鍵時發送此消息

WM_NCLBUTTONUP
0x00A2
當光標在窗口的非客戶區並釋放鼠標左鍵時發送此消息

WM_NCLBUTTONDBLCLK
0x00A3
當光標在窗口的非客戶區並雙擊鼠標左鍵時發送此消息

WM_NCRBUTTONDOWN
0x00A4
當光標在窗口的非客戶區並按下鼠標右鍵時發送此消息

WM_NCRBUTTONUP
0x00A5
當光標在窗口的非客戶區並釋放鼠標右鍵時發送此消息

WM_NCRBUTTONDBLCLK
0x00A6
當光標在窗口的非客戶區並雙擊鼠標右鍵時發送此消息

WM_NCMBUTTONDOWN
0x00A7
當光標在窗口的非客戶區並按下鼠標中鍵時發送此消息

WM_NCMBUTTONUP
0x00A8
當光標在窗口的非客戶區並釋放鼠標中鍵時發送此消息

WM_NCMBUTTONDBLCL
0x00A9
當光標在窗口的非客戶區並雙擊鼠標中鍵時發送此消息

WM_KEYDOWN
0x0100
按下一個非系統鍵(按下鍵時未按下“ALT”鍵)

WM_KEYUP
0x0101
釋放一個非系統鍵

WM_CHAR
0x0102
按下某鍵,當TranslateMessage()轉發WM_KEYDOWN後發送本消息

WM_DEADCHAR
0x0103
釋放某鍵,當TranslateMessage()轉發WM_KEYUP後發送本消息

WM_SYSKEYDOWN
0x0104
當按住ALT鍵同時按下其他鍵時發送此消息給擁有鍵盤焦點的窗口

WM_SYSKEYUP
0x0105
當釋放一個鍵同時按住ALT鍵時發送此消息給擁有鍵盤焦點的窗口

WM_SYSCHAR
0x0106
當TranslateMessage()轉發WM_SYSKEYDOWN後發送此消息給擁有鍵盤焦點的窗口

WM_SYSDEADCHAR
0x0107
當TranslateMessage()轉發WM_SYSKEYUP後發送此消息給擁有鍵盤焦點的窗口

WM_INITDIALOG
0x0110
在被顯示前發送此消息對話框,通常用此消息初始化控件和執行其他任務

WM_COMMAND
0x0111
選擇窗口菜單項或某個控件發送一條消息給它的父窗口或按下一個快捷鍵時產生此消息

WM_SYSCOMMAND
0x0112
選擇窗口菜單項或選擇最大化或最小化時,發送此消息給該窗口

WM_TIMER
0x0113
發生了定時器事件

WM_HSCROLL
0x0114
當窗口水平滾動條產生一個滾動事件時發送此消息給該窗口和滾動條的所有者

WM_VSCROLL
0x0115
當窗口垂直滾動條產生一個滾動事件時發送此消息給該窗口和滾動條的所有者

WM_INITMENU
0x0116
當一個菜單將要被激活時發送此消息,它發生在按下菜單項或按下菜單快捷鍵時,它允許程序在顯示前更改菜單

WM_INITMENUPOPUP
0x0117
當一個下拉菜單或子菜單將要被激活時發送此消息,它允許顯示前在修改菜單而不必更改整個菜單

WM_MENUSELECT
0x011F
選擇一條菜單項時發送此消息給菜單的所有者(一般是窗口)

WM_MENUCHAR
0x0120
當菜單已被激活且用戶按下了某個鍵(非快捷鍵),發送此消息給菜單的所有者

WM_ENTERIDLE
0x0121
當一個有模式對話框或菜單進入空閒狀態時發送此消息給它的所有者,空閒狀態指在處理完一條或幾條先前的消息後,消息列隊爲空

WM_MENURBUTTONUP
0x0122
當光標位於菜單項上時,釋放鼠標右鍵產生此消息

WM_MENUDRAG
0x0123
當拖動菜單項時,發送此消息給拖放菜單的所有者

WM_MENUGETOBJECT
0x0124
當光標移入菜單項或者從菜單項中心移到菜單項頂部或底部時,發送此消息給拖放菜單的所有者

WM_UNINITMENUPOPUP
0x0125
當下拉菜單或者子菜單被銷燬時產生此消息

WM_MENUCOMMAND
0x0126
當用戶選擇菜單項時產生此消息

WM_CHANGEUISTATE
0x0127
應用程序發送此消息表明用戶界面(UI)狀態應當被改變

WM_UPDATEUISTATE
0x0128
應用程序發送此消息改變指定窗口及其子窗口的用戶界面(UI)狀態

WM_QUERYUISTATE
0x0129
應用程序發送此消息得到某個窗口的用戶界面(UI)狀態

WM_CTLCOLORMSGBOX
0x0132
繪製消息框前發送此消息給它的父窗口,通過響應這條消息,父窗口可以通過使用給定的相關顯示設備的句柄來設置消息框的文本和背景顏色

WM_CTLCOLOREDIT
0x0133
繪製編輯型控件前發送此消息給它的父窗口,可用來設置編輯框的文本和背景顏色

WM_CTLCOLORLISTBOX
0x0134
繪製列表框控件前發送此消息給它的父窗口,可用來設置編輯框的文本和背景顏色

WM_CTLCOLORBTN
0x0135
繪製按鈕控件前發送此消息給它的父窗口,可用來設置編輯框的文本和背景顏色

WM_CTLCOLORDLG
0x0136
繪製對話框前發送此消息給它的父窗口,可用來設置編輯框的文本和背景顏色

WM_CTLCOLORSCROLLBAR
0x0137
繪製滾動條控件前發送此消息給它的父窗口,可用來設置滾動條控件的文本和背景顏色

WM_CTLCOLORSTATIC
0x0138
繪製靜態控件前發送此消息給它的父窗口,可用來設置靜態控件的文本和背景顏色

WM_MOUSEMOVE
0x0200
鼠標移動

WM_LBUTTONDOWN
0x0201
按下鼠標左鍵

WM_LBUTTONUP
0x0202
釋放鼠標左鍵

WM_LBUTTONDBLCLK
0x0203
雙擊鼠標左鍵

WM_RBUTTONDOWN
0x0204
按下鼠標右鍵

WM_RBUTTONUP
0x0205
釋放鼠標右鍵

WM_RBUTTONDBLCLK
0x0206
雙擊鼠標右鍵

WM_MBUTTONDOWN
0x0207
按下鼠標中鍵

WM_MBUTTONUP
0x0208
釋放鼠標中鍵

WM_MBUTTONDBLCLK
0x0209
雙擊鼠標中鍵

WM_MOUSEWHEEL
0x020A
當鼠標滾輪轉動時發送此消息給當前獲得焦點的窗口

WM_PARENTNOTIFY
0x0210
當MDI子窗口被創建或被銷燬,或當光標位於子窗口上且用戶按了一下鼠標鍵時,發送此消息給它的父窗口

WM_ENTERMENULOOP
0x0211
發送此消息通知應用程序的主窗口進程已經進入了菜單模式循環

WM_EXITMENULOOP
0x0212
發送此消息通知應用程序的主窗口進程已經退出了菜單模式循環

WM_SIZING
0x0214
調整窗口大小時發送此消息給窗口,通過此消息應用程序可以監視或修改窗口大小和位置

WM_CAPTURECHANGED
0x0215
當窗口設定爲不捕獲鼠標事件時,發送此消息給該窗口

WM_MOVING
0x0216
移動窗口時發送此消息給窗口,通過此消息應用程序可以監視或修改窗口大小和位置

WM_POWERBROADCAST
0x0218
發送此消息給應用程序通知它有關電源管理事件

WM_DEVICECHANGE
0x0219
當設備的硬件配置改變時發送此消息給應用程序或設備驅動程序

WM_MDICREATE
0x0220
應用程序發送此消息給多文檔的客戶窗口來創建一個MDI 子窗口

WM_MDIDESTROY
0x0221
應用程序發送此消息給多文檔的客戶窗口來關閉一個MDI 子窗口

WM_MDIACTIVATE
0x0222
應用程序發送此消息給多文檔的客戶窗口通知客戶窗口激活另一個MDI子窗口,當客戶窗口收到此消息後,它發出WM_MDIACTIVE消息給MDI子窗口(未激活)來激活它

WM_MDIRESTORE
0x0223
應用程序發送此消息給MDI客戶窗口通知子窗口恢復到原來大小

WM_MDINEXT
0x0224
應用程序發送此消息給MDI客戶窗口激活下一個或前一個窗口

WM_MDIMAXIMIZE
0x0225
應用程序發送此消息給MDI客戶窗口以最大化一個MDI子窗口

WM_MDITILE
0x0226
應用程序發送此消息給MDI客戶窗口以平鋪方式重新排列所有MDI子窗口

WM_MDICASCADE
0x0227
應用程序發送此消息給MDI客戶窗口以層疊方式重新排列所有MDI子窗口

WM_MDIICONARRANGE
0x0228
應用程序發送此消息給MDI客戶窗口重新排列所有最小化的MDI子窗口

WM_MDIGETACTIVE
0x0229
應用程序發送此消息給MDI客戶窗口以找到激活的子窗口的句柄

WM_MDISETMENU
0x0230
應用程序發送此消息給MDI客戶窗口用MDI菜單代替子窗口的菜單

WM_ENTERSIZEMOVE
0x0231
當窗口進入移動或改變大小模式循環時,發送此消息給該窗口

WM_EXITSIZEMOVE
0x0232
當窗口退出移動或改變大小模式循環時,發送此消息給該窗口

WM_DROPFILES
0x0233
當用戶在應用程序窗口中拖動某個文件時,產生此消息

WM_MDIREFRESHMENU
0x0234
應用程序發送此消息給MDI客戶窗口以刷新窗口菜單

WM_MOUSEHOVER
0x02A1
當光標在窗口客戶區懸停超過TrackMouseEvent()指定的時間時,發送此消息給該窗口

WM_MOUSELEAVE
0x02A3
當光標離開窗口客戶區超過TrackMouseEvent()指定的時間時,發送此消息給該窗口

WM_CUT
0x0300
應用程序發送此消息給一個編輯框或ComboBox以刪除當前選擇的文本

WM_COPY
0x0301
應用程序發送此消息給一個編輯框或ComboBox以複製當前選擇的文本到剪貼板

WM_PASTE
0x0302
應用程序發送此消息給一個編輯框或ComboBox以從剪貼板中得到數據

WM_CLEAR
0x0303
應用程序發送此消息給一個編輯框或ComboBox以清除當前選擇的內容

WM_UNDO
0x0304
應用程序發送此消息給一個編輯框或ComboBox以撤消最後一次操作

WM_DESTROYCLIPBOARD
0x0307
當調用EmptyClipboard()清空剪貼板時,發送此消息給剪貼板所有者

WM_DRAWCLIPBOARD
0x0308
當剪貼板的內容變化時發送此消息給剪貼板觀察鏈中的第一個窗口,它允許用剪貼板觀察窗口來顯示剪貼板的新內容

WM_PAINTCLIPBOARD
0x0309
當剪貼板包含CF_OWNERDIPLAY格式的數據且剪貼板觀察窗口的客戶區需要重繪時,發送此消息給剪貼板所有者

WM_VSCROLLCLIPBOARD
0x030A
當剪貼板包含CF_OWNERDIPLAY格式的數據且剪貼板觀察窗口發生垂直滾動條事件時,剪貼板觀察窗口發送此消息給剪貼板所有者

WM_SIZECLIPBOARD
0x030B
當剪貼板包含CF_OWNERDIPLAY格式的數據且剪貼板觀察窗口的客戶區域的大小已經改變時,剪貼板觀察窗口發送此消息給剪貼板的所有者

WM_ASKCBFORMATNAME
0x030C
剪貼板觀察窗口發送此消息給剪貼板所有者以獲得CF_OWNERDISPLAY剪貼板格式的名字

WM_CHANGECBCHAIN
0x030D
當一個窗口從剪貼板觀察鏈中移去時發送此消息給剪貼板觀察鏈中的第一個窗口

WM_HSCROLLCLIPBOARD
0x030E
當剪貼板包含CF_OWNERDIPLAY格式的數據且剪貼板觀察窗口發生水平滾動條事件時,剪貼板觀察窗口發送此消息給剪貼板所有者

WM_QUERYNEWPALETTE
0x030F
發送此消息給將要獲得鍵盤焦點的窗口,此消息使窗口在獲得焦點時同時有機會實現它的邏輯調色板

WM_PALETTEISCHANGING
0x0310
應用程序將要實現它的邏輯調色板時發送此消息通知所有應用程序

WM_PALETTECHANGED
0x0311
獲得焦點的窗口實現它的邏輯調色板後發送此消息給所有頂級並重疊的窗口,以此

來改變系統調色板

WM_HOTKEY
0x0312
當用戶按下由RegisterHotKey()註冊的熱鍵時產生此消息

WM_PRINT
0x0317
應用程序發送此消息給窗口,要求窗口在指定設備環境中繪製自己,一般情況下是打印機設備環境

WM_PRINTCLIENT
0x0318
應用程序發送此消息給窗口,要求窗口在指定設備環境中繪製窗口客戶區,一般情況下是打印機設備環境

WM_APP
0x8000
幫助用戶自定義消息,自定義消息可以爲WM_APP+X,X爲正整數

WM_USER
0x0400
幫助用戶自定義消息,自定義消息可以爲WM_USER+X,X爲正整數


表A-3 通知消息-按鈕

消息名稱
說 明

BN_CLICKED
單擊按鈕

BN_DISABLE
按鈕被禁止

BN_DOUBLECLICKED
雙擊按鈕

BN_HILITE
加亮按鈕

BN_PAINT
按鈕應當重畫

BN_UNHILITE
加亮應當去掉


表A-4 通知消息-組合框

消息名稱
說 明

CBN_CLOSEUP
組合框的列表框被關閉

CBN_DBLCLK
用戶雙擊了一個字符串

CBN_DROPDOWN
組合框的列表框被拉下

CBN_EDITCHANGE
用戶修改了組合框中的文本

CBN_EDITUPDATE
組合框內的文本即將更新

CBN_ERRSPACE
組合框內存不足

CBN_KILLFOCUS
組合框失去輸入焦點

CBN_SELCHANGE
在組合框中選擇了一項

CBN_SELENDCANCEL
用戶的選擇將被忽略

CBN_SELENDOK
用戶的選擇將被執行

CBN_SETFOCUS
組合框獲得輸入焦點


表A-5 通知消息-編輯框

消息名稱
說 明

EN_CHANGE
編輯框中的文本己更新

EN_ERRSPACE
編輯框內存不足

EN_HSCROLL
用戶點擊了水平滾動條

EN_KILLFOCUS
編輯框失去輸入焦點

EN_MAXTEXT
插入的內容被截斷

EN_SETFOCUS
編輯框獲得輸入焦點

EN_UPDATE
編輯框中的文本將要更新

EN_VSCROLL
用戶點擊了垂直滾動條


表A-6 通知消息-列表框

消息名稱
說 明

LBN_DBLCLK
用戶雙擊了一項

LBN_ERRSPACE
列表框內存不足

LBN_KILLFOCUS
列表框正在失去輸入焦點

LBN_SELCANCEL
用戶選擇被取消

LBN_SELCHANGE
用戶選擇將改變

LBN_SETFOCUS
列表框獲得輸入焦點

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章