消息,就是指Windows發(fā)出的一個(gè)通知,告訴應(yīng)用程序某個(gè)事情發(fā)生了。例如,單擊鼠標(biāo)、改變窗口尺寸、按下鍵盤上的一個(gè)鍵都會(huì)
使Windows發(fā)送一個(gè)消息給應(yīng)用程序。
消息本身是作為一個(gè)記錄傳遞給應(yīng)用程序的,這個(gè)記錄中包含了消息的類型以及其他信息。例如,對(duì)于單擊鼠標(biāo)所產(chǎn)生的消息來
說,這個(gè)記錄中包含了單擊鼠標(biāo)時(shí)的坐標(biāo)。這個(gè)記錄類型叫做TMsg,它在Windows單元中是這樣聲明的:
type
TMsg = packed record
hwnd: HWND; //窗口句柄
message: UINT;//消息常量標(biāo)識(shí)符
wParam: WPARAM ;// 32位消息的特定附加信息
lParam: LPARAM ;// 32位消息的特定附加信息
time: DWORD;//消息創(chuàng)建時(shí)的時(shí)間
pt: TPoint; //消息創(chuàng)建時(shí)的鼠標(biāo)位置
end ;
消息中有什么?
是否覺得一個(gè)消息記錄中的信息像希臘語一樣?如果是這樣,那么看一看下面的解釋:hwnd 32位的窗口句柄。窗口可以是任何
類型的屏幕對(duì)象,因?yàn)閃in32能夠維護(hù)大多數(shù)可
視對(duì)象的句柄(窗口、對(duì)話框、按鈕、編輯框等)。message 用于區(qū)別其他消息的常量值,這些常量可以是Windows單元中預(yù)定義
的常量,也
可以是自定義的常量。
wParam 通常是一個(gè)與消息有關(guān)的常量值,也可能是窗口或控件的句柄。
lParam 通常是一個(gè)指向內(nèi)存中數(shù)據(jù)的指針。由于WParam、lParam和Pointer都是32位的,因此,它們之間可以相互轉(zhuǎn)換。
WM_NULL =$0000 //
WM_CREATE =$0001 //應(yīng)用程序創(chuàng)建一個(gè)窗口
WM_DESTROY = $0002 //一個(gè)窗口被銷毀
WM_MOVE = $0003 //移動(dòng)一個(gè)窗口
WM_SIZE= $0005 //改變一個(gè)窗口的大小
WM_ACTIVATE= $0006 //一個(gè)窗口被激活或失去激活狀態(tài);
WM_SETFOCUS= $0007 //獲得焦點(diǎn)后
WM_KILLFOCUS= $0008 //失去焦點(diǎn)
WM_ENABLE= $000A //改變enable狀態(tài)
WM_SETREDRAW= $000B //設(shè)置窗口是否能重畫
WM_SETTEXT= $000C //應(yīng)用程序發(fā)送此消息來設(shè)置一個(gè)窗口的文本
WM_GETTEXT = $000D //應(yīng)用程序發(fā)送此消息來復(fù)制對(duì)應(yīng)窗口的文本到緩沖區(qū)
WM_GETTEXTLENGTH = $000E //得到與一個(gè)窗口有關(guān)的文本的長(zhǎng)度(不包含空字符)
WM_PAINT = $000F //要求一個(gè)窗口重畫自己
WM_CLOSE = $0010 //當(dāng)一個(gè)窗口或應(yīng)用程序要關(guān)閉時(shí)發(fā)送一個(gè)信號(hào)
WM_QUERYENDSESSION= $0011 //當(dāng)用戶選擇結(jié)束對(duì)話框或程序自己調(diào)用ExitWindows函數(shù)
WM_QUIT= $0012 //用來結(jié)束程序運(yùn)行或當(dāng)程序調(diào)用postquitmessage函數(shù)
WM_QUERYOPEN = $0013 //當(dāng)用戶窗口恢復(fù)以前的大小位置時(shí),把此消息發(fā)送給某個(gè)圖標(biāo)
WM_ERASEBKGND = $0014 //當(dāng)窗口背景必須被擦除時(shí)(例在窗口改變大小時(shí))
WM_SYSCOLORCHANGE = $0015 //當(dāng)系統(tǒng)顏色改變時(shí),發(fā)送此消息給所有頂級(jí)窗口
WM_ENDSESSION = $0016 // 當(dāng)系統(tǒng)進(jìn)程發(fā)出WM_QUERYENDSESSION消息后,此消息發(fā)送給應(yīng)用程序,通知它對(duì)話是否結(jié)束
WM_SYSTEMERROR = $0017 //
WM_SHOWWINDOW= $0018 //當(dāng)隱藏或顯示窗口是發(fā)送此消息給這個(gè)窗口
WM_ACTIVATEAPP = $001C //發(fā)此消息給應(yīng)用程序哪個(gè)窗口是激活的,哪個(gè)是非激活的;
WM_FONTCHANGE= $001D //當(dāng)系統(tǒng)的字體資源庫變化時(shí)發(fā)送此消息給所有頂級(jí)窗口
WM_TIMECHANGE= $001E //當(dāng)系統(tǒng)的時(shí)間變化時(shí)發(fā)送此消息給所有頂級(jí)窗口
WM_CANCELMODE= $001F //發(fā)送此消息來取消某種正在進(jìn)行的摸態(tài)(操作)
WM_SETCURSOR = $0020 //如果鼠標(biāo)引起光標(biāo)在某個(gè)窗口中移動(dòng)且鼠標(biāo)輸入沒有被捕獲時(shí),就發(fā)消息給某個(gè)窗口
WM_MOUSEACTIVATE = $0021 //當(dāng)光標(biāo)在某個(gè)非激活的窗口中而用戶正按著鼠標(biāo)的某個(gè)鍵發(fā)送此消息給當(dāng)前窗口
WM_CHILDACTIVATE = $0022 //發(fā)送此消息給MDI子窗口當(dāng)用戶點(diǎn)擊此窗口的標(biāo)題欄,或當(dāng)窗口被激活,移動(dòng),改變大小
WM_QUEUESYNC= $0023 //此消息由基于計(jì)算機(jī)的訓(xùn)練程序發(fā)送,通過WH_JOURNALPALYBACK的hook程序分離出用戶輸入消息
WM_GETMINMAXINFO= $0024 //此消息發(fā)送給窗口當(dāng)它將要改變大小或位置;
WM_PAINTICON = $0026 //發(fā)送給最小化窗口當(dāng)它圖標(biāo)將要被重畫
WM_ICONERASEBKGND = $0027 //此消息發(fā)送給某個(gè)最小化窗口,僅當(dāng)它在畫圖標(biāo)前它的背景必須被重畫
WM_NEXTDLGCTL = $0028 //發(fā)送此消息給一個(gè)對(duì)話框程序去更改焦點(diǎn)位置
WM_SPOOLERSTATUS= $002A //每當(dāng)打印管理列隊(duì)增加或減少一條作業(yè)時(shí)發(fā)出此消息
WM_DRAWITEM= $002B //當(dāng)button,combobox,listbox,menu的可視外觀改變時(shí)發(fā)送此消息給這些空件的所有者
WM_MEASUREITEM= $002C //當(dāng)button, combo box, list box, list view control, or menu item
被創(chuàng)建時(shí)發(fā)送此消息給控件的所有者
WM_DELETEITEM = $002D // 當(dāng)the list box 或combo box 被銷毀或當(dāng)某些項(xiàng)被刪除通過LB_DELETESTRING,
LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT 消息
WM_VKEYTOITEM = $002E //此消息有一個(gè)LBS_WANTKEYBOARDINPUT風(fēng)格的發(fā)出給它的所有者來響應(yīng)WM_KEYDOWN消息
WM_CHARTOITEM = $002F //此消息由一個(gè)LBS_WANTKEYBOARDINPUT風(fēng)格的列表框發(fā)送給他的所有者來響應(yīng)WM_CHAR消息
WM_SETFONT= $0030 //當(dāng)繪制文本時(shí)程序發(fā)送此消息得到控件要用的顏色
WM_GETFONT= $0031 //應(yīng)用程序發(fā)送此消息得到當(dāng)前控件繪制文本的字體
WM_SETHOTKEY= $0032 //應(yīng)用程序發(fā)送此消息讓一個(gè)窗口與一個(gè)熱鍵相關(guān)連
WM_GETHOTKEY= $0033 //應(yīng)用程序發(fā)送此消息來判斷熱鍵與某個(gè)窗口是否有關(guān)聯(lián)
WM_QUERYDRAGICON= $0037 //此消息發(fā)送給最小化窗口,當(dāng)此窗口將要被拖放而它的類中沒有定義圖標(biāo),應(yīng)用程序能
返回一個(gè)圖標(biāo)或光標(biāo)的句柄,當(dāng)用戶拖放圖標(biāo)時(shí)系統(tǒng)顯示這個(gè)圖標(biāo)或光標(biāo)
WM_COMPAREITEM= $0039 //發(fā)送此消息來判定combobox或listbox新增加的項(xiàng)的相對(duì)位置
WM_GETOBJECT= $003D //WM_COMPACTING = $0041 //顯示內(nèi)存已經(jīng)很少了
WM_WINDOWPOSCHANGING = $0046 //發(fā)送此消息給那個(gè)窗口的大小和位置將要被改變時(shí),來調(diào)用setwindowpos函數(shù)或其它窗
口管理函數(shù)
WM_WINDOWPOSCHANGED = $0047 //發(fā)送此消息給那個(gè)窗口的大小和位置已經(jīng)被改變時(shí),來調(diào)用setwindowpos函數(shù)或其它窗
口管理函數(shù)
WM_POWER= $0048 //(適用于16位的windows)當(dāng)系統(tǒng)將要進(jìn)入暫停狀態(tài)時(shí)發(fā)送此消息
WM_COPYDATA = $004A //當(dāng)一個(gè)應(yīng)用程序傳遞數(shù)據(jù)給另一個(gè)應(yīng)用程序時(shí)發(fā)送此消息
WM_CANCELJOURNAL= $004B //當(dāng)某個(gè)用戶取消程序日志激活狀態(tài),提交此消息給程序
WM_NOTIFY = $004E //當(dāng)某個(gè)控件的某個(gè)事件已經(jīng)發(fā)生或這個(gè)控件需要得到一些信息時(shí),發(fā)送此消息給它的父窗口
WM_INPUTLANGCHANGEREQUEST = $0050 //當(dāng)用戶選擇某種輸入語言,或輸入語言的熱鍵改變
WM_INPUTLANGCHANGE= $0051 //當(dāng)平臺(tái)現(xiàn)場(chǎng)已經(jīng)被改變后發(fā)送此消息給受影響的最頂級(jí)窗口
WM_TCARD= $0052 //當(dāng)程序已經(jīng)初始化windows幫助例程時(shí)發(fā)送此消息給應(yīng)用程序
WM_HELP = $0053 //此消息顯示用戶按下了F1,如果某個(gè)菜單是激活的,就發(fā)送此消息個(gè)此窗口關(guān)聯(lián)的菜單,否則就
發(fā)送給有焦點(diǎn)的窗口,如果當(dāng)前都沒有焦點(diǎn),就把此消息發(fā)送給當(dāng)前激活的窗口
WM_USERCHANGED= $0054 //當(dāng)用戶已經(jīng)登入或退出后發(fā)送此消息給所有的窗口,當(dāng)用戶登入或退出時(shí)系統(tǒng)更新用戶的具體
設(shè)置信息,在用戶更新設(shè)置時(shí)系統(tǒng)馬上發(fā)送此消息;
WM_NOTIFYformAT = $0055 //公用控件,自定義控件和他們的父窗口通過此消息來判斷控件是使用ANSI還是UNICODE結(jié)構(gòu)
在WM_NOTIFY消息,使用此控件能使某個(gè)控件與它的父控件之間進(jìn)行相互通信
WM_CONTEXTMENU= $007B //當(dāng)用戶某個(gè)窗口中點(diǎn)擊了一下右鍵就發(fā)送此消息給這個(gè)窗口
WM_styleCHANGING= $007C //當(dāng)調(diào)用SETWINDOWLONG函數(shù)將要改變一個(gè)或多個(gè)窗口的風(fēng)格時(shí)發(fā)送此消息給那個(gè)窗口
WM_styleCHANGED = $007D //當(dāng)調(diào)用SETWINDOWLONG函數(shù)一個(gè)或多個(gè)窗口的風(fēng)格后發(fā)送此消息給那個(gè)窗口
WM_DISPLAYCHANGE= $007E //當(dāng)顯示器的分辨率改變后發(fā)送此消息給所有的窗口
WM_GETICON= $007F //此消息發(fā)送給某個(gè)窗口來返回與某個(gè)窗口有關(guān)連的大圖標(biāo)或小圖標(biāo)的句柄;
WM_SETICON= $0080 //程序發(fā)送此消息讓一個(gè)新的大圖標(biāo)或小圖標(biāo)與某個(gè)窗口關(guān)聯(lián);
WM_NCCREATE = $0081 //當(dāng)某個(gè)窗口第一次被創(chuàng)建時(shí),此消息在WM_CREATE消息發(fā)送前發(fā)送;
WM_NCDESTROY= $0082 //此消息通知某個(gè)窗口,非客戶區(qū)正在銷毀
WM_NCCALCSIZE = $0083 //當(dāng)某個(gè)窗口的客戶區(qū)域必須被核算時(shí)發(fā)送此消息
WM_NCHITTEST= $0084 //移動(dòng)鼠標(biāo),按住或釋放鼠標(biāo)時(shí)發(fā)生
WM_NCPAINT= $0085 //程序發(fā)送此消息給某個(gè)窗口當(dāng)它(窗口)的框架必須被繪制時(shí);
WM_NCACTIVATE= $0086 //此消息發(fā)送給某個(gè)窗口僅當(dāng)它的非客戶區(qū)需要被改變來顯示是激活還是非激活狀態(tài);
WM_GETDLGCODE= $0087 //發(fā)送此消息給某個(gè)與對(duì)話框程序關(guān)聯(lián)的控件,widdows控制方位鍵和TAB鍵使輸入進(jìn)入此控件
通過響應(yīng)WM_GETDLGCODE消息,應(yīng)用程序可以把他當(dāng)成一個(gè)特殊的輸入控件并能處理它
WM_NCMOUSEMOVE = $00A0 //當(dāng)光標(biāo)在一個(gè)窗口的非客戶區(qū)內(nèi)移動(dòng)時(shí)發(fā)送此消息給這個(gè)窗口//非客戶區(qū)為:窗體的標(biāo)題欄及
窗
的邊框體
WM_NCLBUTTONDOWN= $00A1 //
當(dāng)光標(biāo)在一個(gè)窗口的非客戶區(qū)同時(shí)按下鼠標(biāo)左鍵時(shí)提交此消息
WM_NCLBUTTONUP= $00A2 //當(dāng)用戶釋放鼠標(biāo)左鍵同時(shí)光標(biāo)某個(gè)窗口在非客戶區(qū)十發(fā)送此消息;
WM_NCLBUTTONDBLCLK= $00A3 //當(dāng)用戶雙擊鼠標(biāo)左鍵同時(shí)光標(biāo)某個(gè)窗口在非客戶區(qū)十發(fā)送此消息
WM_NCRBUTTONDOWN= $00A4 //當(dāng)用戶按下鼠標(biāo)右鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息
WM_NCRBUTTONUP= $00A5 //當(dāng)用戶釋放鼠標(biāo)右鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息
WM_NCRBUTTONDBLCLK= $00A6 //當(dāng)用戶雙擊鼠標(biāo)右鍵同時(shí)光標(biāo)某個(gè)窗口在非客戶區(qū)十發(fā)送此消息
WM_NCMBUTTONDOWN= $00A7 //當(dāng)用戶按下鼠標(biāo)中鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息
WM_NCMBUTTONUP= $00A8 //當(dāng)用戶釋放鼠標(biāo)中鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息
WM_NCMBUTTONDBLCLK= $00A9 //當(dāng)用戶雙擊鼠標(biāo)中鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息
WM_KEYFIRST = $0100 //
WM_KEYDOWN= $0100 //按下一個(gè)鍵
WM_KEYUP= $0101 //釋放一個(gè)鍵
WM_CHAR = $0102 //按下某鍵,并已發(fā)出WM_KEYDOWN,WM_KEYUP消息
WM_DEADCHAR = $0103 //當(dāng)用translatemessage函數(shù)翻譯WM_KEYUP消息時(shí)發(fā)送此消息給擁有焦點(diǎn)的窗口
WM_SYSKEYDOWN = $0104 //當(dāng)用戶按住ALT鍵同時(shí)按下其它鍵時(shí)提交此消息給擁有焦點(diǎn)的窗口;
WM_SYSKEYUP = $0105 //當(dāng)用戶釋放一個(gè)鍵同時(shí)ALT 鍵還按著時(shí)提交此消息給擁有焦點(diǎn)的窗口
WM_SYSCHAR= $0106 //當(dāng)WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數(shù)翻譯后提交此消息給擁有焦點(diǎn)的
窗口
WM_SYSDEADCHAR= $0107 //當(dāng)WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數(shù)翻譯后發(fā)送此消息給擁有焦點(diǎn)的窗口
WM_KEYLAST= $0108 //
WM_INITDIALOG = $0110 //在一個(gè)對(duì)話框程序被顯示前發(fā)送此消息給它,通常用此消息初始化控件和執(zhí)行其它任務(wù)
WM_COMMAND= $0111 //當(dāng)用戶選擇一條菜單命令項(xiàng)或當(dāng)某個(gè)控件發(fā)送一條消息給它的父窗口,一個(gè)快捷鍵被翻譯
WM_SYSCOMMAND = $0112 //當(dāng)用戶選擇窗口菜單的一條命令或當(dāng)用戶選擇最大化或最小化時(shí)那個(gè)窗口會(huì)收到此消息
WM_TIMER= $0113 //發(fā)生了定時(shí)器事件
WM_HSCROLL= $0114 //當(dāng)一個(gè)窗口標(biāo)準(zhǔn)水平滾動(dòng)條產(chǎn)生一個(gè)滾動(dòng)事件時(shí)發(fā)送此消息給那個(gè)窗口,也發(fā)送給擁有它的控件
WM_VSCROLL= $0115 //當(dāng)一個(gè)窗口標(biāo)準(zhǔn)垂直滾動(dòng)條產(chǎn)生一個(gè)滾動(dòng)事件時(shí)發(fā)送此消息給那個(gè)窗口也,發(fā)送給擁有它的控件
WM_INITMENU = $0116 //
當(dāng)一個(gè)菜單將要被激活時(shí)發(fā)送此消息,它發(fā)生在用戶菜單條中的某項(xiàng)或按下某個(gè)菜單鍵,它允許
程序在顯示前更改菜單
WM_INITMENUPOPUP= $0117 //當(dāng)一個(gè)下拉菜單或子菜單將要被激活時(shí)發(fā)送此消息,它允許程序在它顯示前更改菜單,而不要
改變?nèi)?nbsp;
WM_MENUSELECT = $011F //當(dāng)用戶選擇一條菜單項(xiàng)時(shí)發(fā)送此消息給菜單的所有者(一般是窗口)
WM_MENUCHAR = $0120 //當(dāng)菜單已被激活用戶按下了某個(gè)鍵(不同于加速鍵),發(fā)送此消息給菜單的所有者;
WM_ENTERIDLE= $0121 //當(dāng)一個(gè)模態(tài)對(duì)話框或菜單進(jìn)入空載狀態(tài)時(shí)發(fā)送此消息給它的所有者,一個(gè)模態(tài)對(duì)話框或菜單進(jìn)入空
載狀態(tài)就是在處理完一條或幾條先前的消息后沒有消息它的列隊(duì)中等待
WM_MENURBUTTONUP= $0122 //
WM_MENUDRAG = $0123 //
WM_MENUGETOBJECT= $0124 //
WM_UNINITMENUPOPUP= $0125 //
WM_MENUCOMMAND= $0126 //
WM_CHANGEUISTATE= $0127 //
WM_UPDATEUISTATE= $0128 //
WM_QUERYUISTATE = $0129 //
WM_CTLCOLORMSGBOX = $0132 //在windows繪制消息框前發(fā)送此消息給消息框的所有者窗口,通過響應(yīng)這條消息,所有者窗
口可以
通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置消息框的文本和背景顏色
WM_CTLCOLOREDIT = $0133 //當(dāng)一個(gè)編輯型控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口
可以
通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORLISTBOX= $0134 //當(dāng)一個(gè)列表框控件將要被繪制前發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口
可以
通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置列表框的文本和背景顏色
WM_CTLCOLORBTN= $0135 //當(dāng)一個(gè)按鈕控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以
通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置按紐的文本和背景顏色
WM_CTLCOLORDLG= $0136 //當(dāng)一個(gè)對(duì)話框控件將要被繪制前發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以
通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置對(duì)話框的文本背景顏色
WM_CTLCOLORSCROLLBAR= $0137 //當(dāng)一個(gè)滾動(dòng)條控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗
口可以
通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置滾動(dòng)條的背景顏色
WM_CTLCOLORSTATIC = $0138 //當(dāng)一個(gè)靜態(tài)控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口
可以
通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置靜態(tài)控件的文本和背景顏色
WM_MOUSEFIRST = $0200 //
WM_MOUSEMOVE= $0200 //移動(dòng)鼠標(biāo)
WM_LBUTTONDOWN= $0201 //按下鼠標(biāo)左鍵
WM_LBUTTONUP= $0202 //釋放鼠標(biāo)左鍵
WM_LBUTTONDBLCLK= $0203 //雙擊鼠標(biāo)左鍵
WM_RBUTTONDOWN= $0204 //按下鼠標(biāo)右鍵
WM_RBUTTONUP= $0205 //釋放鼠標(biāo)右鍵
WM_RBUTTONDBLCLK= $0206 //雙擊鼠標(biāo)右鍵
WM_MBUTTONDOWN= $0207 //按下鼠標(biāo)中鍵
WM_MBUTTONUP= $0208 //釋放鼠標(biāo)中鍵
WM_MBUTTONDBLCLK= $0209 //雙擊鼠標(biāo)中鍵
WM_MOUSEWHEEL = $020A //當(dāng)鼠標(biāo)輪子轉(zhuǎn)動(dòng)時(shí)發(fā)送此消息個(gè)當(dāng)前有焦點(diǎn)的控件
WM_MOUSELAST= $020A //
WM_PARENTNOTIFY = $0210 //當(dāng)MDI子窗口被創(chuàng)建或被銷毀,或用戶按了一下鼠標(biāo)鍵而光標(biāo)在子窗口上時(shí)發(fā)送此消息給它的
父窗口
WM_ENTERMENULOOP= $0211 //發(fā)送此消息通知應(yīng)用程序的主窗口that已經(jīng)進(jìn)入了菜單循環(huán)模式
WM_EXITMENULOOP = $0212 //發(fā)送此消息通知應(yīng)用程序的主窗口that已退出了菜單循環(huán)模式
WM_NEXTMENU = $0213 //
WM_SIZING = 532 //當(dāng)用戶正在調(diào)整窗口大小時(shí)發(fā)送此消息給窗口;通過此消息應(yīng)用程序可以監(jiān)視窗口大小和位置
也可以修改他們
WM_CAPTURECHANGED = 533 //發(fā)送此消息給窗口當(dāng)它失去捕獲的鼠標(biāo)時(shí);
WM_MOVING = 534 //當(dāng)用戶在移動(dòng)窗口時(shí)發(fā)送此消息,通過此消息應(yīng)用程序可以監(jiān)視窗口大小和位置
也可以修改他們;
WM_POWERBROADCAST = 536 //此消息發(fā)送給應(yīng)用程序來通知它有關(guān)電源管理事件;
WM_DEVICECHANGE = 537 //當(dāng)設(shè)備的硬件配置改變時(shí)發(fā)送此消息給應(yīng)用程序或設(shè)備驅(qū)動(dòng)程序
WM_IME_STARTCOMPOSITION= $010D //
WM_IME_ENDCOMPOSITION= $010E //
WM_IME_COMPOSITION = $010F //
WM_IME_KEYLAST = $010F //
WM_IME_SETCONTEXT= $0281 //
WM_IME_NOTIFY= $0282 //
WM_IME_CONTROL = $0283 //
WM_IME_COMPOSITIONFULL = $0284 //
WM_IME_SELECT= $0285 //
WM_IME_CHAR= $0286 //
WM_IME_REQUEST = $0288 //
WM_IME_KEYDOWN = $0290 //
WM_IME_KEYUP = $0291 //
WM_MDICREATE= $0220 //應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來創(chuàng)建一個(gè)MDI 子窗口
WM_MDIDESTROY = $0221 //應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來關(guān)閉一個(gè)MDI 子窗口
WM_MDIACTIVATE= $0222 //應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口通知客戶窗口激活另一個(gè)MDI子窗口,當(dāng)客戶窗口收到
此消息后,它發(fā)出WM_MDIACTIVE消息給MDI子窗口(未激活)激活它;
WM_MDIRESTORE = $0223 //程序發(fā)送此消息給MDI客戶窗口讓子窗口從最大最小化恢復(fù)到原來大小
WM_MDINEXT= $0224 //程序發(fā)送此消息給MDI客戶窗口激活下一個(gè)或前一個(gè)窗口
WM_MDIMAXIMIZE= $0225 //程序發(fā)送此消息給MDI客戶窗口來最大化一個(gè)MDI子窗口;
WM_MDITILE= $0226 //程序發(fā)送此消息給MDI客戶窗口以平鋪方式重新排列所有MDI子窗口
WM_MDICASCADE = $0227 //程序發(fā)送此消息給MDI客戶窗口以層疊方式重新排列所有MDI子窗口
WM_MDIICONARRANGE = $0228 //程序發(fā)送此消息給MDI客戶窗口重新排列所有最小化的MDI子窗口
WM_MDIGETACTIVE = $0229 //程序發(fā)送此消息給MDI客戶窗口來找到激活的子窗口的句柄
WM_MDISETMENU = $0230 //程序發(fā)送此消息給MDI客戶窗口用MDI菜單代替子窗口的菜單
WM_ENTERSIZEMOVE= $0231 //
WM_EXITSIZEMOVE = $0232 //
WM_DROPFILES= $0233 //
WM_MDIREFRESHMENU = $0234 //
WM_MOUSEHOVER = $02A1 //
WM_MOUSELEAVE = $02A3 //
WM_CUT= $0300 //程序發(fā)送此消息給一個(gè)編輯框或combobox來刪除當(dāng)前選擇的文本
WM_COPY = $0301 //程序發(fā)送此消息給一個(gè)編輯框或combobox來復(fù)制當(dāng)前選擇的文本到剪貼板
WM_PASTE= $0302 //程序發(fā)送此消息給editcontrol或combobox從剪貼板中得到數(shù)據(jù)
WM_CLEAR= $0303 //程序發(fā)送此消息給editcontrol或combobox清除當(dāng)前選擇的內(nèi)容;
WM_UNDO = $0304 //程序發(fā)送此消息給editcontrol或combobox撤消最后一次操作
WM_RENDERformAT = $0305;//
WM_RENDERALLformATS = $0306 //
WM_DESTROYCLIPBOARD = $0307 //當(dāng)調(diào)用ENPTYCLIPBOARD函數(shù)時(shí)發(fā)送此消息給剪貼板的所有者
WM_DRAWCLIPBOARD= $0308 //當(dāng)剪貼板的內(nèi)容變化時(shí)發(fā)送此消息給剪貼板觀察鏈的第一個(gè)窗口;它允許用剪貼板觀察窗口來
顯示剪貼板的新內(nèi)容;
WM_PAINTCLIPBOARD = $0309 //當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)并且剪貼板觀察窗口的客戶區(qū)需要重畫;
WM_VSCROLLCLIPBOARD = $030A //
WM_SIZECLIPBOARD= $030B //當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)并且剪貼板觀察窗口的客戶區(qū)域的大小已經(jīng)改變是此
消息通過剪貼板觀察窗口發(fā)送給剪貼板的所有者;
WM_ASKCBformATNAME= $030C //通過剪貼板觀察窗口發(fā)送此消息給剪貼板的所有者來請(qǐng)求一個(gè)CF_OWNERDISPLAY格式的剪貼板
的名字
WM_CHANGECBCHAIN= $030D //當(dāng)一個(gè)窗口從剪貼板觀察鏈中移去時(shí)發(fā)送此消息給剪貼板觀察鏈的第一個(gè)窗口;
WM_HSCROLLCLIPBOARD = $030E //
此消息通過一個(gè)剪貼板觀察窗口發(fā)送給剪貼板的所有者;它發(fā)生在當(dāng)剪貼板包含CFOWNERDISPALY格式的數(shù)據(jù)并且有個(gè)事件在剪貼
板觀察窗的水平滾動(dòng)條上;所有者應(yīng)滾動(dòng)剪貼板圖象并更新滾動(dòng)條的值;
WM_QUERYNEWPALETTE= $030F //此消息發(fā)送給將要收到焦點(diǎn)的窗口,此消息能使窗口在收到焦點(diǎn)時(shí)同時(shí)有機(jī)會(huì)實(shí)現(xiàn)他的邏輯
調(diào)色板
WM_PALETTEISCHANGING= $0310 //當(dāng)一個(gè)應(yīng)用程序正要實(shí)現(xiàn)它的邏輯調(diào)色板時(shí)發(fā)此消息通知所有的應(yīng)用程序
WM_PALETTECHANGED = $0311 //此消息在一個(gè)擁有焦點(diǎn)的窗口實(shí)現(xiàn)它的邏輯調(diào)色板后發(fā)送此消息給所有頂級(jí)并重疊的窗口
,以此
來改變系統(tǒng)調(diào)色板
WM_HOTKEY = $0312 //當(dāng)用戶按下由REGISTERHOTKEY函數(shù)注冊(cè)的熱鍵時(shí)提交此消息
WM_PRINT= 791 //應(yīng)用程序發(fā)送此消息僅當(dāng)WINDOWS或其它應(yīng)用程序發(fā)出一個(gè)請(qǐng)求要求繪制一個(gè)應(yīng)用程序的一部分;
WM_PRINTCLIENT= 792 //
WM_HANDHELDFIRST= 856 //
WM_HANDHELDLAST = 863 //
WM_PENWINFIRST= $0380 //
WM_PENWINLAST = $038F //
WM_COALESCE_FIRST = $0390 //
WM_COALESCE_LAST= $039F //
WM_DDE_FIRST= $03E0 //
WM_DDE_INITIATE = WM_DDE_FIRST + 0 //一個(gè)DDE客戶程序提交此消息開始一個(gè)與服務(wù)器程序的會(huì)話來響應(yīng)那個(gè)指定
的程序和主題名;
WM_DDE_TERMINATE= WM_DDE_FIRST + 1 //一個(gè)DDE應(yīng)用程序(無論是客戶還是服務(wù)器)提交此消息來終止一個(gè)會(huì)話;
WM_DDE_ADVISE = WM_DDE_FIRST + 2 //一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序來請(qǐng)求服務(wù)器每當(dāng)數(shù)據(jù)項(xiàng)改變
時(shí)更新它
WM_DDE_UNADVISE = WM_DDE_FIRST + 3 //一個(gè)DDE客戶程序通過此消息通知一個(gè)DDE服務(wù)程序不更新指定的項(xiàng)或一個(gè)特
殊的剪貼板格式的項(xiàng)
WM_DDE_ACK= WM_DDE_FIRST + 4 //此消息通知一個(gè)DDE(動(dòng)態(tài)數(shù)據(jù)交換)程序已收到并正在處理WM_DDE_POKE,
WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, or WM_DDE_INITIAT消息
WM_DDE_DATA = WM_DDE_FIRST + 5 //一個(gè)DDE服務(wù)程序提交此消息給DDE客戶程序來傳遞個(gè)一數(shù)據(jù)項(xiàng)給客戶或通知客戶
的一條可用數(shù)據(jù)項(xiàng)
WM_DDE_REQUEST= WM_DDE_FIRST + 6 //一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序來請(qǐng)求一個(gè)數(shù)據(jù)項(xiàng)的值;
WM_DDE_POKE = WM_DDE_FIRST + 7 //一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序,客戶使用此消息來請(qǐng)求服務(wù)器
接收一個(gè)未經(jīng)同意的數(shù)據(jù)項(xiàng);服務(wù)器通過答復(fù)WM_DDE_ACK消息提示是否它接收這個(gè)數(shù)據(jù)項(xiàng);
WM_DDE_EXECUTE= WM_DDE_FIRST + 8 //一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序來發(fā)送一個(gè)字符串給服務(wù)器讓它
象串行命令一樣被處理,服務(wù)器通過提交WM_DDE_ACK消息來作回應(yīng);
WM_DDE_LAST = WM_DDE_FIRST + 8 //
WM_APP = $8000 //
WM_USER = $0400 //此消息能幫助應(yīng)用程序自定義私有消息;
/////////////////////////////////////////////////////////////////////
通知消息(Notification message)是指這樣一種消息,一個(gè)窗口內(nèi)的子控件發(fā)生了一些事情,需要通
知父窗口。通知消息只適用于標(biāo)準(zhǔn)的窗口控件如按鈕、列表框、組合框、編輯框,以及Windows 95公
共控件如樹狀視圖、列表視圖等。例如,單擊或雙擊一個(gè)控件、在控件中選擇部分文本、操作控件的
滾動(dòng)條都會(huì)產(chǎn)生通知消息。
按扭
BN_CLICKED //用戶單擊了按鈕
BN_DISABLE //按鈕被禁止
BN_DOUBLECLICKED //用戶雙擊了按鈕
BN_HILITE //用戶加亮了按鈕
BN_PAINT //按鈕應(yīng)當(dāng)重畫
BN_UNHILITE //加亮應(yīng)當(dāng)去掉
組合框
CBN_CLOSEUP //組合框的列表框被關(guān)閉
CBN_DBLCLK //用戶雙擊了一個(gè)字符串
CBN_DROPDOWN //組合框的列表框被拉出
CBN_EDITCHANGE //用戶修改了編輯框中的文本
CBN_EDITUPDATE //編輯框內(nèi)的文本即將更新
CBN_ERRSPACE //組合框內(nèi)存不足
CBN_KILLFOCUS //組合框失去輸入焦點(diǎn)
CBN_SELCHANGE //在組合框中選擇了一項(xiàng)
CBN_SELENDCANCEL //用戶的選擇應(yīng)當(dāng)被取消
CBN_SELENDOK //用戶的選擇是合法的
CBN_SETFOCUS //組合框獲得輸入焦點(diǎn)
編輯框
EN_CHANGE //編輯框中的文本己更新
EN_ERRSPACE //編輯框內(nèi)存不足
EN_HSCROLL //用戶點(diǎn)擊了水平滾動(dòng)條
EN_KILLFOCUS //編輯框正在失去輸入焦點(diǎn)
EN_MAXTEXT //插入的內(nèi)容被截?cái)?nbsp;
EN_SETFOCUS //編輯框獲得輸入焦點(diǎn)
EN_UPDATE //編輯框中的文本將要更新
EN_VSCROLL //用戶點(diǎn)擊了垂直滾動(dòng)條消息含義
列表框
LBN_DBLCLK //用戶雙擊了一項(xiàng)
LBN_ERRSPACE //列表框內(nèi)存不夠
LBN_KILLFOCUS //列表框正在失去輸入焦點(diǎn)
LBN_SELCANCEL //選擇被取消
LBN_SELCHANGE //選擇了另一項(xiàng)
LBN_SETFOCUS //列表框獲得輸入焦點(diǎn)
posted on 2009-06-09 15:49
似水之心 閱讀(1678)
評(píng)論(0) 編輯 收藏 引用