Window Notifications WM_ 視窗 訊息/通知
訊息名 |
訊息值 |
說明 |
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, combo box, list box, list view control, or menu item 被建立時傳送此訊息給控制元件的所有者 |
WM_DELETEITEM |
0x002D |
當the list box 或 combo box 被銷燬 或 當 某些項被刪除通過LB_DELETESTRING, LB_RESETCONTENT,CB_DELETESTRING, or CB_RESETCONTENT訊息 |
WM_VKEYTOITEM |
0x002E |
此訊息有一個LBS_WANTKEYBOARDINPUT風格的發出給它的所有者來響應WM_KEYDOWN訊息 |
WM_CHARTOITEM |
0x002F |
此訊息由一個LBS_WANTKEYBOARDINPUT風格的列表框傳送給他的所有者來響應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_WINDOWPOSCHANGED |
0x0047 |
傳送此訊息給那個視窗的大小和位置已經被改變時,來呼叫setwindowpos函式或其它視窗管理函式 |
WM_POWER |
0x0048 |
(適用於16位的windows)當系統將要進入暫停狀態時傳送此訊息 |
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 |
公用控制元件,自定義控制元件和他們的父視窗通過此訊息來判斷控制元件是使用ANSI還是UNICODE結構在WM_NOTIFY訊息,使用此控制元件能使某個控制元件與它的父控制元件之間進行相互通訊 |
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_GETDLGCODE |
0x0087 |
傳送此訊息給某個與對話方塊程式關聯的控制元件,widdows控制方位鍵和TAB鍵使輸入進入此控制元件,通過響應WM_GETDLGCODE訊息,應用程式可以把他當成一個特殊的輸入控制元件並能處理它 |
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_NCMBUTTONDBLCLK |
0x00A9 |
當用戶雙擊滑鼠中鍵同時游標又在視窗的非客戶區時傳送此訊息 |
WM_KEYDOWN |
0x0100 |
按下一個鍵 |
WM_KEYUP |
0x0101 |
釋放一個鍵 |
WM_CHAR |
0x0102 |
按下某鍵,並已發出WM_KEYDOWN,WM_KEYUP訊息 |
WM_DEADCHAR |
0x0103 |
當用translatemessage函式翻譯WM_KEYUP訊息時傳送此訊息給擁有焦點的視窗 |
WM_SYSKEYDOWN |
0x0104 |
當用戶按住ALT鍵同時按下其它鍵時提交此訊息給擁有焦點的視窗 |
WM_SYSKEYUP |
0x0105 |
當用戶釋放一個鍵同時ALT 鍵還按著時提交此訊息給擁有焦點的視窗 |
WM_SYSCHAR |
0x0106 |
當WM_SYSKEYDOWN訊息被TRANSLATEMESSAGE函式翻譯後提交此訊息給擁有焦點的視窗 |
WM_SYSDEADCHAR |
0x0107 |
當WM_SYSKEYDOWN訊息被TRANSLATEMESSAGE函式翻譯後傳送此訊息給擁有焦點的視窗 |
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_CTLCOLORMSGBOX |
0x0132 |
在windows繪製訊息框前傳送此訊息給訊息框的所有者視窗,通過響應這條訊息,所有者視窗可以通過使用給定的相關顯示裝置的控制代碼來設定訊息框的文字和背景顏色 |
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 |
傳送此訊息通知應用程式的主視窗that已經進入了選單迴圈模式 |
WM_EXITMENULOOP |
0x0212 |
傳送此訊息通知應用程式的主視窗that已退出了選單迴圈模式 |
WM_SIZING |
532 |
當用戶正在調整視窗大小時傳送此訊息給視窗;通過此訊息應用程式可以監視視窗大小和位置也可以修改他們 |
WM_CAPTURECHANGED |
533 |
傳送此訊息給視窗當它失去捕獲的滑鼠時 |
WM_MOVING |
534 |
當用戶在移動視窗時傳送此訊息,通過此訊息應用程式可以監視視窗大小和位置也可以修改他們 |
WM_POWERBROADCAST |
536 |
此訊息傳送給應用程式來通知它有關電源管理事件 |
WM_DEVICECHANGE |
537 |
當裝置的硬體配置改變時傳送此訊息給應用程式或裝置驅動程式 |
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_CUT |
0x0300 |
程式傳送此訊息給一個編輯框或combobox來刪除當前選擇的文字 |
WM_COPY |
0x0301 |
程式傳送此訊息給一個編輯框或combobox來複制當前選擇的文字到剪貼簿 |
WM_PASTE |
0x0302 |
程式傳送此訊息給editcontrol或combobox從剪貼簿中得到資料 |
WM_CLEAR |
0x0303 |
程式傳送此訊息給editcontrol或combobox清除當前選擇的內容 |
WM_UNDO |
0x0304 |
程式傳送此訊息給editcontrol或combobox撤消最後一次操作 |
WM_DESTROYCLIPBOARD |
0x0307 |
當呼叫ENPTYCLIPBOARD函式時傳送此訊息給剪貼簿的所有者 |
WM_DRAWCLIPBOARD |
0x0308 |
當剪貼簿的內容變化時傳送此訊息給剪貼簿觀察鏈的第一個視窗;它允許用剪貼簿觀察視窗來顯示剪貼簿的新內容 |
WM_PAINTCLIPBOARD |
0x0309 |
當剪貼簿包含CF_OWNERDIPLAY格式的資料並且剪貼簿觀察視窗的客戶區需要重畫 |
WM_SIZECLIPBOARD |
0x030B |
當剪貼簿包含CF_OWNERDIPLAY格式的資料並且剪貼簿觀察視窗的客戶區域的大小已經改變是此訊息通過剪貼簿觀察視窗傳送給剪貼簿的所有者 |
WM_ASKCBFORMATNAME |
0x030C |
通過剪貼簿觀察視窗傳送此訊息給剪貼簿的所有者來請求一個CF_OWNERDISPLAY格式的剪貼簿的名字 |
WM_CHANGECBCHAIN |
0x030D |
當一個視窗從剪貼簿觀察鏈中移去時傳送此訊息給剪貼簿觀察鏈的第一個視窗 |
WM_HSCROLLCLIPBOARD |
0x030E |
此訊息通過一個剪貼簿觀察視窗傳送給剪貼簿的所有者,它發生在當剪貼簿包含CFOWNERDISPALY格式的資料並且有個事件在剪貼簿觀察窗的水平滾動條上;所有者應滾動剪貼簿圖象並更新滾動條的值 |
WM_QUERYNEWPALETTE |
0x030F |
此訊息傳送給將要收到焦點的視窗,此訊息能使視窗在收到焦點時同時有機會實現他的邏輯調色盤 |
WM_PALETTEISCHANGING |
0x0310 |
當一個應用程式正要實現它的邏輯調色盤時發此訊息通知所有的應用程式 |
WM_PALETTECHANGED |
0x0311 |
此訊息在一個擁有焦點的視窗實現它的邏輯調色盤後傳送此訊息給所有頂級並重疊的視窗,以此來改變系統調色盤 |
WM_HOTKEY |
0x0312 |
當用戶按下由REGISTERHOTKEY函式註冊的熱鍵時提交此訊息 |