1. 程式人生 > >Window Notifications WM_ 視窗 訊息/通知

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函式註冊的熱鍵時提交此訊息