Windows 常用消息大全
附錄A Windows 常用消息大全
表A-1? Windows消息分布
消息范圍
說 明
0 ~ WM_USER – 1
系統(tǒng)消息
WM_USER ~ 0x7FFF
自定義窗口類整數(shù)消息
WM_APP ~ 0xBFFF
應(yīng)用程序自定義消息
0xC000 ~ 0xFFFF
應(yīng)用程序字符串消息
> 0xFFFF
為以后系統(tǒng)應(yīng)用保留
表A-2? 常用Windows消息
消息名稱
值
說? 明
WM_NULL?
0x0000
空消息,此消息將被接收窗口忽略
WM_CREATE?
0x0001
應(yīng)用程序創(chuàng)建一個窗口
WM_DESTROY
0x0002
一個窗口被銷毀
WM_MOVE
0x0003
移動一個窗口
WM_SIZE
0x0005
改變一個窗口的大小
WM_ACTIVATE
0x0006
一個窗口被激活或失去激活狀態(tài)
WM_SETFOCUS
0x0007
獲得焦點后
WM_KILLFOCUS
0x0008
失去焦點
WM_ENABLE
0x000A
應(yīng)用程序Enable狀態(tài)改變時產(chǎn)生
WM_SETREDRAW
0x000B
設(shè)置窗口是否能重畫
WM_SETTEXT
0x000C
應(yīng)用程序發(fā)送此消息來設(shè)置一個窗口的文本
WM_GETTEXT
0x000D
應(yīng)用程序發(fā)送此消息來復(fù)制對應(yīng)窗口的文本到緩沖區(qū)
WM_GETTEXTLENGTH
0x000E
得到與一個窗口有關(guān)的文本的長度(不包含空字符)
WM_PAINT
0x000F
要求一個窗口重繪自己
WM_CLOSE
0x0010
當一個窗口或應(yīng)用程序要關(guān)閉時發(fā)送一個信號
WM_QUERYENDSESSION
0x0011
用戶選擇結(jié)束對話框或應(yīng)用程序自己調(diào)用ExitWindows()函數(shù)
WM_QUIT
0x0012
用來結(jié)束程序運行或應(yīng)用程序調(diào)用Postquitmessage()函數(shù)來產(chǎn)生此消息
WM_QUERYOPEN
0x0013
當用戶窗口恢復(fù)以前的大小位置時,把此消息發(fā)送給某個圖標
WM_ERASEBKGND
0x0014
當窗口背景必須被擦除時(例如在窗口改變大小時)
WM_SYSCOLORCHANGE
0x0015
當系統(tǒng)顏色改變時,發(fā)送此消息給所有頂級窗口
WM_ENDSESSION
0x0016
當系統(tǒng)進程發(fā)出WM_QUERYENDSESSION消息后,此消息發(fā)送給應(yīng)用程序
WM_SHOWWINDOW
0x0018
當隱藏或顯示窗口是發(fā)送此消息給這個窗口
WM_ACTIVATEAPP
0x001C
當某個窗口將被激活時,將被激活窗口和當前活動(即將失去激活)窗口會收到此消息,發(fā)此消息給應(yīng)用程序哪個窗口是激活的,哪個是非激活的
WM_FONTCHANGE
0x001D
當系統(tǒng)的字體資源庫變化時發(fā)送此消息給所有頂級窗口
WM_TIMECHANGE
0x001E
當系統(tǒng)的時間變化時發(fā)送此消息給所有頂級窗口
WM_CANCELMODE
0x001F
發(fā)送此消息來取消某種正在進行的操作
WM_SETCURSOR
0x0020
如果鼠標引起光標在某個窗口中移動且鼠標輸入沒有被捕獲時,發(fā)消息給該窗口
WM_MOUSEACTIVATE
0x0021
當光標在某個非激活的窗口中而用戶正按著鼠標的某個鍵發(fā)送此消息給當前窗口
WM_CHILDACTIVATE
0x0022
發(fā)送此消息給MDI子窗口當用戶點擊此窗口的標題欄,或當窗口被激活、移動、改變大小
WM_QUEUESYNC
0x0023
此消息由基于計算機的訓(xùn)練程序發(fā)送,通過WH_JOURNALPALYBACK的Hook程序分離出用戶輸入消息
WM_GETMINMAXINFO
0x0024
當窗口要將要改變大小或位置時,發(fā)送此消息給該窗口
WM_PAINTICON
0x0026
當窗口圖標將要被重繪時,發(fā)送此消息給該窗口
WM_ICONERASEBKGND
0x0027
在一個最小化窗口的圖標在重繪前,當圖標背景必須被重繪時,發(fā)送此消息給該窗口
WM_NEXTDLGCTL
0x0028
發(fā)送此消息給一個對話框程序以更改焦點位置
WM_SPOOLERSTATUS
0x002A
當打印管理列隊增加或減少一條作業(yè)時發(fā)出此消息
WM_DRAWITEM
0x002B
當Button,ComboBox,Listbox,Menu控件的外觀改變時,發(fā)送此消息給這些控件的所有者
WM_MEASUREITEM
0x002C
當Button,ComboBox,list box,ListView,Menu 項被創(chuàng)建時,發(fā)送此消息給控件的所有者
WM_DELETEITEM
0x002D
當ListBox 或 ComboBox 被銷毀或當某些項通過發(fā)送LB_DELETESTRING、LB_RESETCONTENT、 CB_DELETESTRING、CB_RESETCONTENT 消息被刪除時,發(fā)送此消息給控件的所有者
WM_VKEYTOITEM
0x002E
一個具有LBS_WANTKEYBOARDINPUT風(fēng)格的ListBox控件發(fā)送此消息給它的所有者,以此來響應(yīng)WM_KEYDOWN消息
WM_CHARTOITEM
0x002F
一個具有LBS_WANTKEYBOARDINPUT風(fēng)格的ListBox控件發(fā)送此消息給它的所有者,以此來響應(yīng)WM_CHAR消息
WM_SETFONT
0x0030
應(yīng)用程序繪制控件時,發(fā)送此消息得到以何種字體繪制控件中的文本
WM_GETFONT
0x0031
應(yīng)用程序發(fā)送此消息得到當前控件繪制文本的字體
WM_SETHOTKEY
0x0032
應(yīng)用程序發(fā)送此消息讓一個窗口與一個熱鍵相關(guān)聯(lián)
WM_GETHOTKEY
0x0033
應(yīng)用程序發(fā)送此消息來判斷熱鍵與某個窗口是否有關(guān)聯(lián)
WM_QUERYDRAGICON
0x0037
此消息發(fā)送給最小化窗口,當此窗口將要被拖放而它的類中沒有定義圖標,應(yīng)用程序就返回一個圖標或光標的句柄,當用戶拖放圖標時系統(tǒng)顯示這個圖標或光標
WM_COMPAREITEM
0x0039
發(fā)送此消息來判定ComboBox或ListBox新增加的項的相對位置
WM_COMPACTING
0x0041
顯示內(nèi)存已經(jīng)很少了
WM_WINDOWPOSCHANGING
0x0046
當調(diào)用SetWindowPos()函數(shù)改變窗口的大小和位置后,發(fā)送此消息給該窗口
WM_POWER
0x0048
當系統(tǒng)將進入掛起狀態(tài)時發(fā)送此消息給所有進程
WM_COPYDATA
0x004A
當一個應(yīng)用程序傳遞數(shù)據(jù)給另一個應(yīng)用程序時發(fā)送此消息
WM_CANCELJOURNAL
0x004B
當某個用戶取消程序日志激活狀態(tài),發(fā)送此消息給應(yīng)用程序
WM_NOTIFY
0x004E
當某個控件的某個事件已經(jīng)發(fā)生或這個控件需要得到一些信息時,發(fā)送此消息給它的父窗口
WM_INPUTLANGCHANGEREQUEST
0x0050
當用戶選擇某種輸入語言,或輸入語言的熱鍵改變
WM_INPUTLANGCHANGE
0x0051
當應(yīng)用程序輸入語言改變后發(fā)送此消息給受影響的最頂級窗口
WM_TCARD
0x0052
當應(yīng)用程序已經(jīng)初始化Windows幫助例程時發(fā)送此消息給應(yīng)用程序
WM_HELP
0x0053
當用戶按下了F1,如果某個菜單是激活的,就發(fā)送此消息給此窗口關(guān)聯(lián)的菜單,否則就發(fā)送給有焦點的窗口,如果當前都沒有焦點,就把此消息發(fā)送給當前激活的窗口
WM_USERCHANGED
0x0054
當用戶已經(jīng)登錄或退出后發(fā)送此消息給所有的窗口,當用戶登錄或退出時系統(tǒng)更新用戶的具體設(shè)置信息,在用戶更新設(shè)置時系統(tǒng)馬上發(fā)送此消息
WM_NOTIFYFORMAT
0x0055
公用控件和它們的父窗口通過此消息來判斷在WM_NOTIFY消息中是使用ANSI還是UNICODE形式的結(jié)構(gòu),使用此控件能使某個控件與它的父控件進行相互通信
WM_CONTEXTMENU
0x007B
當用戶在某個窗口中點擊右鍵,則發(fā)送此消息給該窗口
WM_STYLECHANGING
0x007C
當將要調(diào)用SetWindowLong()函數(shù)窗口的一個或多個風(fēng)格時,發(fā)送此消息給該窗口
WM_STYLECHANGED
0x007D
當調(diào)用SetWindowLong()函數(shù)改變了窗口的一個或多個風(fēng)格后,發(fā)送此消息給該窗口
WM_DISPLAYCHANGE
0x007E
當顯示器的分辨率改變后發(fā)送此消息給所有的窗口
WM_GETICON
0x007F
發(fā)送此消息給某個窗口,返回與某個窗口有關(guān)聯(lián)的大圖標或小圖標的句柄
WM_SETICON
0x0080
應(yīng)用程序發(fā)送此消息讓一個新的大圖標或小圖標與某個窗口關(guān)聯(lián)
WM_NCCREATE
0x0081
當某個窗口第一次被創(chuàng)建時,此消息在WM_CREATE消息被發(fā)送前發(fā)送
WM_NCDESTROY
0x0082
此消息通知某個窗口,正在銷毀非客戶區(qū)
WM_NCCALCSIZE
0x0083
當計算某個窗口的客戶區(qū)大小和位置時發(fā)送此消息
WM_NCHITTEST
0x0084
移動鼠標,按住或釋放鼠標時產(chǎn)生此消息
WM_NCPAINT
0x0085
當某個窗口的框架必須被繪制時,應(yīng)用程序發(fā)送此消息給該窗口
WM_NCACTIVATE
0x0086
通過改變某個窗口的非客戶區(qū)來表示窗口是處于激活還是非激活狀態(tài)時,此消息被發(fā)送給該窗口
WM_NCMOUSEMOVE
0x00A0
當光標在窗口的非客戶區(qū)(窗口標題欄及邊框)內(nèi)移動時發(fā)送此消息給該窗口
WM_NCLBUTTONDOWN
0x00A1
當光標在窗口的非客戶區(qū)并按下鼠標左鍵時發(fā)送此消息
WM_NCLBUTTONUP
0x00A2
當光標在窗口的非客戶區(qū)并釋放鼠標左鍵時發(fā)送此消息
WM_NCLBUTTONDBLCLK
0x00A3
當光標在窗口的非客戶區(qū)并雙擊鼠標左鍵時發(fā)送此消息
WM_NCRBUTTONDOWN
0x00A4
當光標在窗口的非客戶區(qū)并按下鼠標右鍵時發(fā)送此消息
WM_NCRBUTTONUP
0x00A5
當光標在窗口的非客戶區(qū)并釋放鼠標右鍵時發(fā)送此消息
WM_NCRBUTTONDBLCLK
0x00A6
當光標在窗口的非客戶區(qū)并雙擊鼠標右鍵時發(fā)送此消息
WM_NCMBUTTONDOWN
0x00A7
當光標在窗口的非客戶區(qū)并按下鼠標中鍵時發(fā)送此消息
WM_NCMBUTTONUP
0x00A8
當光標在窗口的非客戶區(qū)并釋放鼠標中鍵時發(fā)送此消息
WM_NCMBUTTONDBLCL
0x00A9
當光標在窗口的非客戶區(qū)并雙擊鼠標中鍵時發(fā)送此消息
WM_KEYDOWN
0x0100
按下一個非系統(tǒng)鍵(按下鍵時未按下“ALT”鍵)
WM_KEYUP
0x0101
釋放一個非系統(tǒng)鍵
WM_CHAR
0x0102
按下某鍵,當TranslateMessage()轉(zhuǎn)發(fā)WM_KEYDOWN后發(fā)送本消息
WM_DEADCHAR
0x0103
釋放某鍵,當TranslateMessage()轉(zhuǎn)發(fā)WM_KEYUP后發(fā)送本消息
WM_SYSKEYDOWN
0x0104
當按住ALT鍵同時按下其他鍵時發(fā)送此消息給擁有鍵盤焦點的窗口
WM_SYSKEYUP
0x0105
當釋放一個鍵同時按住ALT鍵時發(fā)送此消息給擁有鍵盤焦點的窗口
WM_SYSCHAR
0x0106
當TranslateMessage()轉(zhuǎn)發(fā)WM_SYSKEYDOWN后發(fā)送此消息給擁有鍵盤焦點的窗口
WM_SYSDEADCHAR
0x0107
當TranslateMessage()轉(zhuǎn)發(fā)WM_SYSKEYUP后發(fā)送此消息給擁有鍵盤焦點的窗口
WM_INITDIALOG
0x0110
在被顯示前發(fā)送此消息對話框,通常用此消息初始化控件和執(zhí)行其他任務(wù)
WM_COMMAND
0x0111
選擇窗口菜單項或某個控件發(fā)送一條消息給它的父窗口或按下一個快捷鍵時產(chǎn)生此消息
WM_SYSCOMMAND
0x0112
選擇窗口菜單項或選擇最大化或最小化時,發(fā)送此消息給該窗口
WM_TIMER
0x0113
發(fā)生了定時器事件
WM_HSCROLL
0x0114
當窗口水平滾動條產(chǎn)生一個滾動事件時發(fā)送此消息給該窗口和滾動條的所有者
WM_VSCROLL
0x0115
當窗口垂直滾動條產(chǎn)生一個滾動事件時發(fā)送此消息給該窗口和滾動條的所有者
WM_INITMENU
0x0116
當一個菜單將要被激活時發(fā)送此消息,它發(fā)生在按下菜單項或按下菜單快捷鍵時,它允許程序在顯示前更改菜單
WM_INITMENUPOPUP
0x0117
當一個下拉菜單或子菜單將要被激活時發(fā)送此消息,它允許顯示前在修改菜單而不必更改整個菜單
WM_MENUSELECT
0x011F
選擇一條菜單項時發(fā)送此消息給菜單的所有者(一般是窗口)
WM_MENUCHAR
0x0120
當菜單已被激活且用戶按下了某個鍵(非快捷鍵),發(fā)送此消息給菜單的所有者
WM_ENTERIDLE
0x0121
當一個有模式對話框或菜單進入空閑狀態(tài)時發(fā)送此消息給它的所有者,空閑狀態(tài)指在處理完一條或幾條先前的消息后,消息列隊為空
WM_MENURBUTTONUP
0x0122
當光標位于菜單項上時,釋放鼠標右鍵產(chǎn)生此消息
WM_MENUDRAG
0x0123
當拖動菜單項時,發(fā)送此消息給拖放菜單的所有者
WM_MENUGETOBJECT
0x0124
當光標移入菜單項或者從菜單項中心移到菜單項頂部或底部時,發(fā)送此消息給拖放菜單的所有者
WM_UNINITMENUPOPUP
0x0125
當下拉菜單或者子菜單被銷毀時產(chǎn)生此消息
WM_MENUCOMMAND
0x0126
當用戶選擇菜單項時產(chǎn)生此消息
WM_CHANGEUISTATE
0x0127
應(yīng)用程序發(fā)送此消息表明用戶界面(UI)狀態(tài)應(yīng)當被改變
WM_UPDATEUISTATE
0x0128
應(yīng)用程序發(fā)送此消息改變指定窗口及其子窗口的用戶界面(UI)狀態(tài)
WM_QUERYUISTATE
0x0129
應(yīng)用程序發(fā)送此消息得到某個窗口的用戶界面(UI)狀態(tài)
WM_CTLCOLORMSGBOX
0x0132
繪制消息框前發(fā)送此消息給它的父窗口,通過響應(yīng)這條消息,父窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置消息框的文本和背景顏色
WM_CTLCOLOREDIT
0x0133
繪制編輯型控件前發(fā)送此消息給它的父窗口,可用來設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORLISTBOX
0x0134
繪制列表框控件前發(fā)送此消息給它的父窗口,可用來設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORBTN
0x0135
繪制按鈕控件前發(fā)送此消息給它的父窗口,可用來設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORDLG
0x0136
繪制對話框前發(fā)送此消息給它的父窗口,可用來設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORSCROLLBAR
0x0137
繪制滾動條控件前發(fā)送此消息給它的父窗口,可用來設(shè)置滾動條控件的文本和背景顏色





