Windows 消息

hwnd 32位的窗口句柄。窗口可以是任何類型的屏幕對象,因爲Win32能夠維護大多數可

視對象的句柄(窗口、對話框、按鈕、編輯框等)。message 用於區別其他消息的常量值,這些常量可以是Windows單元中預定義的常量,也可以是自定義的常量。

wParam 通常是一個與消息有關的常量值,也可能是窗口或控件的句柄。

lParam 通常是一個指向內存中數據的指針。由於WParam、lParam和Pointer都是32位的,因此,它們之間可以相互轉換。

WM_NULL =$0000 //

WM_CREATE =$0001 //應用程序創建一個窗口

WM_DESTROY = $0002 //一個窗口被銷燬

WM_MOVE = $0003 //移動一個窗口

WM_SIZE= $0005 //改變一個窗口的大小

WM_ACTIVATE= $0006 //一個窗口被激活或失去激活狀態;

WM_SETFOCUS= $0007 //獲得焦點後

WM_KILLFOCUS= $0008 //失去焦點

WM_ENABLE= $000A //改變enable狀態

WM_SETREDRAW= $000B //設置窗口是否能重畫

WM_SETTEXT= $000C //應用程序發送此消息來設置一個窗口的文本

WM_GETTEXT = $000D //應用程序發送此消息來複制對應窗口的文本到緩衝區

WM_GETTEXTLENGTH = $000E //得到與一個窗口有關的文本的長度(不包含空字符)

WM_PAINT = $000F //要求一個窗口重畫自己

WM_CLOSE = $0010 //當一個窗口或應用程序要關閉時發送一個信號

WM_QUERYENDSESSION= $0011 //當用戶選擇結束對話框或程序自己調用ExitWindows函數

WM_QUIT= $0012 //用來結束程序運行或當程序調用postquitmessage函數

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

WM_ERASEBKGND = $0014 //當窗口背景必須被擦除時(例在窗口改變大小時)

WM_SYSCOLORCHANGE = $0015 //當系統顏色改變時,發送此消息給所有頂級窗口

WM_ENDSESSION = $0016 // 當系統進程發出WM_QUERYENDSESSION消息後,此消息發送給應用程序,通知它對話是否結束

WM_SYSTEMERROR = $0017 //

WM_SHOWWINDOW= $0018 //當隱藏或顯示窗口是發送此消息給這個窗口

WM_ACTIVATEAPP = $001C //發此消息給應用程序哪個窗口是激活的,哪個是非激活的;

WM_FONTCHANGE= $001D //當系統的字體資源庫變化時發送此消息給所有頂級窗口

WM_TIMECHANGE= $001E //當系統的時間變化時發送此消息給所有頂級窗口

WM_CANCELMODE= $001F //發送此消息來取消某種正在進行的摸態(操作)

WM_SETCURSOR = $0020 //如果鼠標引起光標在某個窗口中移動且鼠標輸入沒有被捕獲時,就發消息給某個窗口

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

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

WM_QUEUESYNC= $0023 //此消息由基於計算機的訓練程序發送,通過WH_JOURNALPALYBACK的hook程序分離出用戶輸入消息

WM_GETMINMAXINFO= $0024 //此消息發送給窗口當它將要改變大小或位置;

WM_PAINTICON = $0026 //發送給最小化窗口當它圖標將要被重畫

WM_ICONERASEBKGND = $0027 //此消息發送給某個最小化窗口,僅當它在畫圖標前它的背景必須被重畫

WM_NEXTDLGCTL = $0028 //發送此消息給一個對話框程序去更改焦點位置

WM_SPOOLERSTATUS= $002A //每當打印管理列隊增加或減少一條作業時發出此消息

WM_DRAWITEM= $002B //當button,combobox,listbox,menu的可視外觀改變時發送此消息給這些空件的所有者

WM_MEASUREITEM= $002C //當button, combo box, list box, list view control, or menu item 被創建時發送此消息給控件的所有者

WM_DELETEITEM = $002D // 當the list box 或combo box 被銷燬或當某些項被刪除通過LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT 消息

WM_VKEYTOITEM = $002E //此消息有一個LBS_WANTKEYBOARDINPUT風格的發出給它的所有者來響應WM_KEYDOWN消息

WM_CHARTOITEM = $002F //此消息由一個LBS_WANTKEYBOARDINPUT風格的列表框發送給他的所有者來響應WM_CHAR消息

WM_SETFONT= $0030 //當繪製文本時程序發送此消息得到控件要用的顏色

WM_GETFONT= $0031 //應用程序發送此消息得到當前控件繪製文本的字體

WM_SETHOTKEY= $0032 //應用程序發送此消息讓一個窗口與一個熱鍵相關連

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

WM_QUERYDRAGICON= $0037 //此消息發送給最小化窗口,當此窗口將要被拖放而它的類中沒有定義圖標,應用程序能

返回一個圖標或光標的句柄,當用戶拖放圖標時系統顯示這個圖標或光標

WM_COMPAREITEM= $0039 //發送此消息來判定combobox或listbox新增加的項的相對位置

WM_GETOBJECT= 003D//WM C OMPACTING=  0041 //顯示內存已經很少了

WM_WINDOWPOSCHANGING = $0046 //發送此消息給那個窗口的大小和位置將要被改變時,來調用setwindowpos函數或其它窗口管理函數

WM_WINDOWPOSCHANGED = $0047 //發送此消息給那個窗口的大小和位置已經被改變時,來調用setwindowpos函數或其它窗口管理函數

WM_POWER= $0048 //(適用於16位的windows)當系統將要進入暫停狀態時發送此消息

WM_COPYDATA = $004A //當一個應用程序傳遞數據給另一個應用程序時發送此消息

WM_CANCELJOURNAL= $004B //當某個用戶取消程序日誌激活狀態,提交此消息給程序

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

WM_INPUTLANGCHANGEREQUEST = $0050 //當用戶選擇某種輸入語言,或輸入語言的熱鍵改變

WM_INPUTLANGCHANGE= $0051 //當平臺現場已經被改變後發送此消息給受影響的最頂級窗口

WM_TCARD= $0052 //當程序已經初始化windows幫助例程時發送此消息給應用程序

WM_HELP = $0053 //此消息顯示用戶按下了F1,如果某個菜單是激活的,就發送此消息個此窗口關聯的菜單,否則就

發送給有焦點的窗口,如果當前都沒有焦點,就把此消息發送給當前激活的窗口

WM_USERCHANGED= $0054 //當用戶已經登入或退出後發送此消息給所有的窗口,當用戶登入或退出時系統更新用戶的具體

設置信息,在用戶更新設置時系統馬上發送此消息;

WM_NOTIFYformAT = $0055 //公用控件,自定義控件和他們的父窗口通過此消息來判斷控件是使用ANSI還是UNICODE結構

在WM_NOTIFY消息,使用此控件能使某個控件與它的父控件之間進行相互通信

WM_CONTEXTMENU= $007B //當用戶某個窗口中點擊了一下右鍵就發送此消息給這個窗口

WM_styleCHANGING= $007C //當調用SETWINDOWLONG函數將要改變一個或多個窗口的風格時發送此消息給那個窗口

WM_styleCHANGED = $007D //當調用SETWINDOWLONG函數一個或多個窗口的風格後發送此消息給那個窗口

WM_DISPLAYCHANGE= $007E //當顯示器的分辨率改變後發送此消息給所有的窗口

WM_GETICON= $007F //此消息發送給某個窗口來返回與某個窗口有關連的大圖標或小圖標的句柄;

WM_SETICON= $0080 //程序發送此消息讓一個新的大圖標或小圖標與某個窗口關聯;

WM_NCCREATE = $0081 //當某個窗口第一次被創建時,此消息在WM_CREATE消息發送前發送;

WM_NCDESTROY= $0082 //此消息通知某個窗口,非客戶區正在銷燬

WM_NCCALCSIZE = $0083 //當某個窗口的客戶區域必須被覈算時發送此消息

WM_NCHITTEST= $0084 //移動鼠標,按住或釋放鼠標時發生

WM_NCPAINT= $0085 //程序發送此消息給某個窗口當它(窗口)的框架必須被繪製時;

WM_NCACTIVATE= $0086 //此消息發送給某個窗口僅當它的非客戶區需要被改變來顯示是激活還是非激活狀態;

WM_GETDLGCODE= $0087 //發送此消息給某個與對話框程序關聯的控件,widdows控制方位鍵和TAB鍵使輸入進入此控件

通過響應WM_GETDLGCODE消息,應用程序可以把他當成一個特殊的輸入控件並能處理它

WM_NCMOUSEMOVE = $00A0 //當光標在一個窗口的非客戶區內移動時發送此消息給這個窗口//非客戶區爲:窗體的標題欄及窗的邊框體

WM_NCLBUTTONDOWN= $00A1 //當光標在一個窗口的非客戶區同時按下鼠標左鍵時提交此消息

WM_NCLBUTTONUP= $00A2 //當用戶釋放鼠標左鍵同時光標某個窗口在非客戶區十發送此消息;

WM_NCLBUTTONDBLCLK= $00A3 //當用戶雙擊鼠標左鍵同時光標某個窗口在非客戶區十發送此消息

WM_NCRBUTTONDOWN= $00A4 //當用戶按下鼠標右鍵同時光標又在窗口的非客戶區時發送此消息

WM_NCRBUTTONUP= $00A5 //當用戶釋放鼠標右鍵同時光標又在窗口的非客戶區時發送此消息

WM_NCRBUTTONDBLCLK= $00A6 //當用戶雙擊鼠標右鍵同時光標某個窗口在非客戶區十發送此消息

WM_NCMBUTTONDOWN= $00A7 //當用戶按下鼠標中鍵同時光標又在窗口的非客戶區時發送此消息

WM_NCMBUTTONUP= $00A8 //當用戶釋放鼠標中鍵同時光標又在窗口的非客戶區時發送此消息

WM_NCMBUTTONDBLCLK= $00A9 //當用戶雙擊鼠標中鍵同時光標又在窗口的非客戶區時發送此消息

WM_KEYFIRST = $0100 //

WM_KEYDOWN= $0100 //按下一個鍵

WM_KEYUP= $0101 //釋放一個鍵

WM_CHAR = $0102 //按下某鍵,並已發出WM_KEYDOWN,WM_KEYUP消息

WM_DEADCHAR = $0103 //當用translatemessage函數翻譯WM_KEYUP消息時發送此消息給擁有焦點的窗口

WM_SYSKEYDOWN = $0104 //當用戶按住ALT鍵同時按下其它鍵時提交此消息給擁有焦點的窗口;

WM_SYSKEYUP = $0105 //當用戶釋放一個鍵同時ALT 鍵還按着時提交此消息給擁有焦點的窗口

WM_SYSCHAR= $0106 //當WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數翻譯後提交此消息給擁有焦點的窗口

WM_SYSDEADCHAR= $0107 //當WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數翻譯後發送此消息給擁有焦點的窗口

WM_KEYLAST= $0108 //

WM_INITDIALOG = $0110 //在一個對話框程序被顯示前發送此消息給它,通常用此消息初始化控件和執行其它任務

WM_COMMAND= $0111 //當用戶選擇一條菜單命令項或當某個控件發送一條消息給它的父窗口,一個快捷鍵被翻譯

WM_SYSCOMMAND = $0112 //當用戶選擇窗口菜單的一條命令或當用戶選擇最大化或最小化時那個窗口會收到此消息

WM_TIMER= $0113 //發生了定時器事件

WM_HSCROLL= $0114 //當一個窗口標準水平滾動條產生一個滾動事件時發送此消息給那個窗口,也發送給擁有它的控件

WM_VSCROLL= 0115//WM I NITMENU=  0116 //

當一個菜單將要被激活時發送此消息,它發生在用戶菜單條中的某項或按下某個菜單鍵,它允許

程序在顯示前更改菜單

WM_INITMENUPOPUP= $0117 //當一個下拉菜單或子菜單將要被激活時發送此消息,它允許程序在它顯示前更改菜單,而不要

改變全部

WM_MENUSELECT = $011F //當用戶選擇一條菜單項時發送此消息給菜單的所有者(一般是窗口)

WM_MENUCHAR = $0120 //當菜單已被激活用戶按下了某個鍵(不同於加速鍵),發送此消息給菜單的所有者;

WM_ENTERIDLE= $0121 //當一個模態對話框或菜單進入空載狀態時發送此消息給它的所有者,一個模態對話框或菜單進入空載狀態就是在處理完一條或幾條先前的消息後沒有消息它的列隊中等待

WM_MENURBUTTONUP= $0122 //

WM_MENUDRAG = $0123 //

WM_MENUGETOBJECT= $0124 //

WM_UNINTMENUPOPUP= $0125 //

WM_MENUCOMMAND= $0126 //

WM_CHANGEUISTATE= $0127 //

WM_UPDATEUISTATE= $0128 //

WM_QUERYUISTATE = $0129 //

WM_CTLCOLORMSGBOX = $0132 //在windows繪製消息框前發送此消息給消息框的所有者窗口,通過響應這條消息,所有者窗口可以

通過使用給定的相關顯示設備的句柄來設置消息框的文本和背景顏色

WM_CTLCOLOREDIT = $0133 //當一個編輯型控件將要被繪製時發送此消息給它的父窗口;通過響應這條消息,所有者窗口可以

通過使用給定的相關顯示設備的句柄來設置編輯框的文本和背景顏色

WM_CTLCOLORLISTBOX= $0134 //當一個列表框控件將要被繪製前發送此消息給它的父窗口;通過響應這條消息,所有者窗口可以

通過使用給定的相關顯示設備的句柄來設置列表框的文本和背景顏色

WM_CTLCOLORBTN= $0135 //當一個按鈕控件將要被繪製時發送此消息給它的父窗口;通過響應這條消息,所有者窗口可以

通過使用給定的相關顯示設備的句柄來設置按紐的文本和背景顏色

WM_CTLCOLORDLG= $0136 //當一個對話框控件將要被繪製前發送此消息給它的父窗口;通過響應這條消息,所有者窗口可以

通過使用給定的相關顯示設備的句柄來設置對話框的文本背景顏色

WM_CTLCOLORSCROLLBAR= $0137 //當一個滾動條控件將要被繪製時發送此消息給它的父窗口;通過響應這條消息,所有者窗口可以

通過使用給定的相關顯示設備的句柄來設置滾動條的背景顏色

WM_CTLCOLORSTATIC = $0138 //當一個靜態控件將要被繪製時發送此消息給它的父窗口;通過響應這條消息,所有者窗口可以

通過使用給定的相關顯示設備的句柄來設置靜態控件的文本和背景顏色

WM_MOUSEFIRST = $0200 //

WM_MOUSEMOVE= $0200 //移動鼠標

WM_LBUTTONDOWN= $0201 //按下鼠標左鍵

WM_LBUTTONUP= $0202 //釋放鼠標左鍵

WM_LBUTTONDBLCLK= $0203 //雙擊鼠標左鍵

WM_RBUTTONDOWN= $0204 //按下鼠標右鍵

WM_RBUTTONUP= $0205 //釋放鼠標右鍵

WM_RBUTTONDBLCLK= $0206 //雙擊鼠標右鍵

WM_MBUTTONDOWN= $0207 //按下鼠標中鍵

WM_MBUTTONUP= $0208 //釋放鼠標中鍵

WM_MBUTTONDBLCLK= $0209 //雙擊鼠標中鍵

WM_MOUSEWHEEL = $020A //當鼠標輪子轉動時發送此消息個當前有焦點的控件

WM_MOUSELAST= $020A //

WM_PARENTNOTIFY = $0210 //當MDI子窗口被創建或被銷燬,或用戶按了一下鼠標鍵而光標在子窗口上時發送此消息給它的父窗口

WM_ENTERMENULOOP= $0211 //發送此消息通知應用程序的主窗口that已經進入了菜單循環模式

WM_EXITMENULOOP = $0212 //發送此消息通知應用程序的主窗口that已退了菜單循環模式

WM_NEXTMENU = $0213 //

WM_SIZING = 532 //當用戶正在調整窗口大小時發送此消息給窗口;通過此消息應用程序可以監視窗口大小和位置

也可以修改他們

WM_CAPTURECHANGED = 533 //發送此消息給窗口當它失去捕獲的鼠標時;

WM_MOVING = 534 //當用戶在移動窗口時發送此消息,通過此消息應用程序可以監視窗口大小和位置也可以修改他們;

WM_POWERBROADCAST = 536 //此消息發送給應用程序來通知它有關電源管理事件;

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

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 //應用程序發送此消息給多文檔的客戶窗口來創建一個MDI 子窗口

WM_MDIDESTROY = $0221 //應用程序發送此消息給多文檔的客戶窗口來閉一個MDI 子窗口

WM_MDIACTIVATE= $0222 //應用程序發送此消息給多文檔的客戶窗口通知客戶窗口激活另一個MDI子窗口,當客戶窗口收到

此消息後,它發出WM_MDIACTIVE消息給MDI子窗口(未激活)激活它;

WM_MDIRESTORE = $0223 //程序發送此消息給MDI客戶窗口讓子窗口從最大最小化恢復到原來大小

WM_MDINEXT= $0224 //程序發送此消息給MDI客戶窗口激活下一個或前一個窗口

WM_MDIMAXIMIZE= $0225 //程序發送此消息給MDI客戶窗口來最大化一個MDI子窗口;

WM_MDITILE= $0226 //程序發送此消息給MDI客戶窗口以平鋪方式重新排列所有MDI子窗口

WM_MDICASCADE = $0227 //程序發送此消息給MDI客戶窗口以層疊方式重新排列所有MDI子窗口

WM_MDIICONARRANGE = $0228 //程序發送此消息給MDI客戶窗口重新排列所有最小化的MDI子窗口

WM_MDIGETACTIVE = $0229 //程序發送此消息給MDI客戶窗口來找到激活的子窗口的句柄

WM_MDISETMENU = $0230 //程序發送此消息給MDI客戶窗口用MDI菜單代替子窗口的菜單

WM_ENTERSIZEMOVE= $0231 //

WM_EXITSIZEMOVE = $0232 //

WM_DROPFILES= $0233 //

WM_MDIREFRESHMENU = $0234 //

WM_MOUSEHOVER = $02A1 //

WM_MOUSELEAVE = $02A3 //

WM_CUT= $0300 //程序發送此消息給一個編輯框或combobox來刪除當前選擇的文本

WM_COPY = $0301 //程序發送此消息給一個編輯框或combobox來複制當前選擇的文本到剪貼板

WM_PASTE= $0302 //程序發送此消息給editcontrol或combobox從剪貼板中得到數據

WM_CLEAR= $0303 //程序發送此消息給editcontrol或combobox清除當前選擇的內容;

WM_UNDO = $0304 //程序發送此消息給editcontrol或combobox撤消最後一次操作

WM_RENDERformAT = $0305;//

WM_RENDERALLformATS = $0306 //

WM_DESTROYCLIPBOARD = $0307 //當調用ENPTYCLIPBOARD函數時發送此消息給剪貼板的所有者

WM_DRAWCLIPBOARD= $0308 //當剪貼板的內容變化時發送此消息給剪貼板觀察鏈的第一個窗口;它允許用剪貼板觀察窗口來

顯示剪貼板的新內容;

WM_PAINTCLIPBOARD = $0309 //當剪貼板包含CF_OWNERDIPLAY格式的數據並且剪貼板觀察窗口的客戶區需要重畫;

WM_VSCROLLCLIPBOARD = $030A //

WM_SIZECLIPBOARD= $030B //當剪貼板包含CF_OWNERDIPLAY格式的數據並且剪貼板觀察窗口的客戶區域的大小已經改變是此消息通過剪貼板觀察窗口發送給剪貼板的所有者;

WM_ASKCBformATNAME= $030C //通過剪貼板觀察窗口發送此消息給剪貼板的所有者來請求一個CF_OWNERDISPLAY格式的剪貼板的名字

WM_CHANGECBCHAIN= $030D //當一個窗口從剪貼板觀察鏈中移去時發送此消息給剪貼板觀察鏈的第一個窗口;

WM_HSCROLLCLIPBOARD = $030E //

此消息通過一個剪貼板觀察窗口發送給剪貼板的所有者;它發生在當剪貼板包含CFOWNERDISPALY格式的數據並且有個事件在剪貼板觀察窗的水平滾動條上;所有者應滾動剪貼板圖象並更新滾動條的值;

WM_QUERYNEWPALETTE= $030F //此消息發送給將要收到焦點的窗口,此消息能使窗口在收到焦點時同時有機會實現他的邏輯調色板

WM_PALETTEISCHANGING= $0310 //當一個應用程序正要實現它的邏輯調色板時發此消息通知所有的應用程序

WM_PALETTECHANGED = $0311 //此消息在一個擁有焦點的窗口實現它的邏輯調色板後發送此消息給所有頂級並重疊的窗口,以此來改變系統調色板

WM_HOTKEY = $0312 //當用戶按下由REGISTERHOTKEY函數註冊的熱鍵時提交此消息

WM_PRINT= 791 //應用程序發送此消息僅當WINDOWS或其它應用程序發出一個請求要求繪製一個應用程序的一部分;

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 //一個DDE客戶程序提交此消息開始一個與服務器程序的會話來響應那個指定的程序和主題名;

WM_DDE_TERMINATE= WM_DDE_FIRST 1 //一個DDE應用程序(無論是客戶還是服務器)提交此消息來終止一個會話;

WM_DDE_ADVISE = WM_DDE_FIRST 2 //一個DDE客戶程序提交此消息給一個DDE服務程序來請求服務器每當數據項改變時更新它

WM_DDE_UNADVISE = WM_DDE_FIRST 3 //一個DDE客戶程序通過此消息通知一個DDE服務程序不更新指定的項或一個特殊的剪貼板格式的項

WM_DDE_ACK= WM_DDE_FIRST 4 //此消息通知一個DDE(動態數據交換)程序已收到並正在處理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 //一個DDE服務程序提交此消息給DDE客戶程序來傳遞個一數據項給客戶或通知客戶的一條可用數據項

WM_DDE_REQUEST= WM_DDE_FIRST 6 //一個DDE客戶程序提交此消息給一個DDE服務程序來請求一個數據項的值;

WM_DDE_POKE = WM_DDE_FIRST 7 //一個DDE客戶程序提交此消息給一個DDE服務程序,客戶使用此消息來請求服務器接收一個未經同意的數據項;服務器通過答覆WM_DDE_ACK消息提示是否它接收這個數據項;

WM_DDE_EXECUTE= WM_DDE_FIRST 8 //一個DDE客戶程序提交此消息給一個DDE服務程序來發送一個字符串給服務器讓它象串行命令一樣被處理,服務器通過提交WM_DDE_ACK消息來作迴應;

WM_DDE_LAST = WM_DDE_FIRST 8 //

WM_APP = $8000 //

WM_USE = $0400 //此消息能幫助應用程序自定義私有消息;

/////////////////////////////////////////////////////////////////////

通知消息(Notification message)是指這樣一種消息,一個窗口內的子控件發生了一些事情,需要通

知父窗口。通知消息只適用於標準的窗口控件如按鈕、列表框、組合框、編輯框,以及Windows 95公

共控件如樹狀視圖、列表視圖等。例如,單擊或雙擊一個控件、在控件中選擇部分文本、操作控件的

滾動條都會產生通知消息。

按扭

BN_CLICKED //用戶單擊了按鈕

BN_DISABLE //按鈕被禁止

BN_DOUBLECLICKED //用戶雙擊了按鈕

BN_HILITE //用戶加亮了按鈕

BN_PAINT //按鈕應當重畫

BN_UNHILITE //加亮應當去掉

組合框

CBN_CLOSEUP //組合框的列表框被關閉

CBN_DBLCLK //用戶雙擊了一個字符串

CBN_DROPDOWN //組合框的列表框被拉出

CBN_EDITCHANGE //用戶修改了編輯框中的文本

CBN_EDITUPDATE //編輯框內的文本即將更新

CBN_ERRSPACE //組合框內存不足

CBN_KILLFOCUS //組合框失去輸入焦點

CBN_SELCHANGE //在組合框中選擇了一項

CBN_SELENDCANCEL //用戶的選擇應當被取消

CBN_SELENDOK //用戶的選擇是合法的

CBN_SETFOCUS //組合框獲得輸入焦點

編輯框

EN_CHANGE //編輯框中的文本己更新

EN_ERRSPACE //編輯框內存不足

EN_HSCROLL //用戶點擊了水平滾動條

EN_KILLFOCUS //編輯框正在失去輸入焦點

EN_MAXTEXT //插入的內容被截斷

EN_SETFOCUS //編輯框獲得輸入焦點

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

EN_VSCROLL //用戶點擊了垂直滾動條消息含義

列表框

LBN_DBLCLK //用戶雙擊了一項

LBN_ERRSPACE //列表框內存不夠

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

LBN_SELCANCEL //選擇被取消

LBN_SELCHANGE //選擇了另一項

LBN_SETFOCUS //列表框獲得輸入焦點

標識符 實際類型 意義

CHAR char 8位Windows(ANSI)字符。

CCHAR char 8位Windows(ANSI)字符。

PSZ char* 一個以”NULL”結束的Windows字符串的指針

PCHAR CHAR* 一個CHAR型指針

PSTR CHAR* 一個以”NULL”結尾的8位Windows(ANSI)字符串指針

LPSTR CHAR* 一個以”NULL”結尾的8位WINDOWS(ANSI)字符串指針

NPSTR CHAR* 一個以”NULL”結尾的8位WINDOWS(ANSI)字符串指針

PCSTR CONST CHAR* 一個以”NULL”結尾的8位WINDOWS(ANSI)字符串常量指針

LPCSTR CONST CHAR* 一個以”NULL”結尾的8位WINDOWS(ANSI)字符串常量指針

WCHAR wchar_t 16位Unicode字符

PWCH WCHAR* 一個WCHAR型指針

PWCHAR WCHAR* 一個WCHAR型指針

PWSTR WCHAR* 一個以”NULL”結尾的16位Unicode字符串指針

LPWSTR WCHAR FAR* 一個以”NULL”結尾的16位Unicode字符串指針

NWPSTR WCHAR* 一個以”NULL”結尾的16位Unicode字符串指針

PCWCH CONST WCHAR* 一個WCHAR型常量指針

LPCWCH CONST WCHAR FAR* 一個WCHAR型常量指針

PCWSTR CONST WCHAR* 一個以”NULL”結束的16位Unicode字符串常量指針

LPCWSTR CONST WCHAR FAR* 一個以”NULL”結尾的16位Unicode字符串常量指針

TCHAR WCHAR(或char) 兼容型字符(Unicode中爲WCHAR型,Windows中爲CHAR型)

PTCHAR WCHAR*(或char) 一個TCHAR型指針

PTCH LPWSTR(或LPSTR) Unicode中爲LPWSTR型,Windows中爲LPSTR型

LPTCH LPWSTR(或LPSTR) Unicode中爲LPWSTR型,Windows中爲LPSTR型

PTSTR LPWSTR(或LPSTR) Unicode中爲LPWSTR型,Windows中爲LPSTR型

LPTSTR LPWSTR(或LPSTR) Unicode中爲LPWSTR型,Windows中爲LPSTR型

PCTSTR PCWSTR(或PCSTR) Unicode中爲PCWSTR型,Windows中爲PCSTR型

LPCTSTR LPCWSTR(或LPCSTR) Unicode中爲LPCWSTR型,Windows中爲LPCSTR型

UCHAR unsigned char 無符號字符型

PUCHAR UCHAR* 一個UCHAR型指針

BSTR OLECHAR* 32位字符指針(不推薦使用)

OLECHAR wchar_t Unicode字符類型(用於對象鏈接與嵌入的數據類型,如嵌入Word文檔)

LPOLESTR OLECHAR* 一個OLECHAR型指針

LPCOLESTR const OLECHAR* 指向OLECHAR類型的字符串常量指針


數值類:


標識符 實際類型 意義

BYTE unsigned char 8位無符號整數

PBYTE BYTE near* 一個BYTE型指針

LPBYTE BYTE far* 一個BYTE型指針

TBYTE WCHAR(或unsigned char) Unicode中爲WCHAR型,Windows中爲unsigned char型

PTBYTE WCHAR*(或unsigned char*) 一個TBYTE型指針

BOOL int 布爾變量,其值爲(TRUE或FALSE)

PBOOL BOOL near* 一個BOOL型指針

LPBOOL BOOL far* 一個BOOL型指針

BOOLEAN BYTE 布爾變量,其值爲(TRUE或FALSE)

PBOOLEAN BOOLEAN* 一個BOOLEAN型指針

SHORT short 16位短整數(有符號)

PSHORT SHORT* 一個SHORT型指針

USHORT unsigned short 無符號短整型

PUSHORT USHORT* 一個USHORT型指針

INT int 32位符號整數

INT32 32位符號整數

INT64 64位符號整數

INT_PTR Signed integral type for pointer precision.Use when casting a pointer to an integer to perform pointer arithmetic.

PINT INT near* 一個INT型指針

LPINT INT far* 一個INT型指針

UINT unsigned int 無符號的整型

UINT32 無符號的INT32型

UINT64 無符號的INT64型

UINT_PTR 無符號的INT_PTR型

PUINT UINT* 一個UINT型指針

LONG long 32位符號整數

LONG32 32位符號整數

LONG64 64位符號整數

LONGLONG __int64(或double) 64位符號整數

LONG_PTR Signed long type for pointer precision.Use when casting a pointer to a long to perform pointer arithmetic.

PLONG LONG near* 一個LONG型指針

LPLONG LONG far* 一個LONG型指針

PLONGLONG LONGLONG* 一個LONGLONG型指針

ULONG unsigned long 無符號的LONG型

ULONG32 無符號的LONG32型

ULONG64 無符號的LONG64型

ULONGLONG unsigned __int64(或double) 64位無符號整型

ULONG_PTR 無符號的LONG_PTR型

PULONG ULONG* 一個ULONG型指針

PULONGLONG ULONGLONG* 一個ULONGLONG型指針

WORD unsigned short 16位無符號整型

PWORD WORD near* 一個WORD型指針

LPWORD WORD far* 一個WORD型指針

DWORD unsigned long 32位無符號整數

DWORD32 32位無符號整型

DWORD64 64位無符號整型

DWORD_PTR Unsigned long type for pointer precision.Use when casting a pointer to a long type to perform pointer arithmetic.(Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows.

PDWORD DWORD near* 一個DWORD型指針

LPDWORD DWORD far* 一個DWORD型指針

FLOAT float 浮點變量

PFLOAT FLOAT near* 一個FLOAT型指針


句柄類:


標識符 實際類型 意義

HANDLE void* 對象句柄(32位無符號整數)

PHANDLE HANDLE NEAR* 一個HANDLE型指針

SPHANDLE HANDLE NEAR* 一個HANDLE型指針

LPHANDLE HANDLE FAR* 一個HANDLE型指針

GLOBALHANDLE HANDLE 一個全局句柄

HDC HANDLE 設備描述表(DC)句柄

HBITMAP HANDLE 位圖句柄

HBRUSH HANDLE 畫刷句柄

HICON HANDLE 圖標句柄

HCURSOR HICON 光標句柄

HPALETTE HANDLE 調色板句柄

HPEN HANDLE 畫筆句柄

HCONV 動態數據交換(DDE)會話句柄

HACCEL HANDLE 加速鍵表句柄

HCONVLIST DDE會話列表句柄

HDDEDATA DDE數據句柄

HDESK HANDLE 桌面句柄

HDLG 對話框句柄

HDROP 一個internal drop structure句柄。

HDWP 延期窗口位置結構句柄

HENHMETAFILE HANDLE 增強圖元文件句柄

HFILE int或short 文件句柄,用於函數OpenFile,不是CreateFile

HFONT HANDLE 字體句柄

HGDIOBJ HANDLE(void NEAR*) GDI對象句柄

HGLOBAL HANDLE 全局內存塊句柄

HHOOK HANDLE 鉤子句柄

HIMAGELIST 映像列表句柄

HIMC 輸入描述表句柄

HINSTANCE HANDLE 實例句柄(32位無符號整數)

HKEY 登記關鍵字句柄

HKL HANDLE Input locale identifier.

HLOCAL HANDLE 局部內存塊句柄

HMEMU 菜單句柄

HMETAFILE HANDLE 圖元文件句柄

HMIDIIN MIDI輸入文件句柄(MIDI:樂器的數字化接口)

HMIDIOUT MIDI輸出文件句柄(MIDI:樂器的數字化接口)

HMMIO 文件句柄

HMODULE HINSTANCE 一個程序模塊的句柄。其值爲該模塊的啓始地址。

HMONITOR HANDLE 顯示監視器句柄

HRGN HANDLE 域句柄

HRSRC HANDLE 資源句柄

HSZ DDE字符串句柄

HWAVEIN 波形輸入文件句柄

HWAVEOUT 波形輸出文件句柄

LPHWAVEIN 一個HWAVEIN型指針

LPHWAVEOUT 一個WAVEOUT型指針

HWINSTA HANDLE 工作站句柄

HWND HANDLE 窗口句柄(32位無符號整數)

LOCALHANDLE HANDLE

SC_HANDLE 服務控制管理數據庫(service control manager database)句柄

SC_LOCK 綁定服務控制管理數據庫(service control manager database)句柄

SERVICE_STATUS_HANDLE 服務狀態值句柄


函數指針類:


標識符 意義

MFENUMPROC 該回調函數枚舉元文件記錄

ENUMFENUMPROC 該回調函數枚舉增強的元文件記錄

ENUMRESLANGPROC 該回調函數枚舉資源語言。

ENUMRESNAMEPROC 該回調函數枚舉資源名稱。

ENUMRESTYPEPROC 該回調函數枚舉資源類型。

FONTENUMPROC 該回調函數枚舉字體

GOBJENUMPROC 該回調函數枚舉圖形設備接口(GDI)對象

HOOKPROC 鉤子過程函數指針

LPCCHOOKPROC 指向一個應用程序定義的鉤子函數的指針

LPCFHOOKPROC 指向一個應用程序定義的鉤子函數的指針

LPFRHOOKPROC 指向一個應用程序定義的鉤子函數的指針

LPOFNHOOKPROC 指向一個應用程序定義的鉤子函數的指針

LPPRINTHOOKPROC 指向一個應用程序定義的鉤子函數的指針

LPSETUPHOOKPROC 指向一個應用程序定義的鉤子函數的指針

FARPROC 指向一個長回調函數的指針

DLGPROC 指向一個對話框過程的指針

LINEDDAPROC 指向一個回調函數的指針,該回調函數處理行座標

LOHANDLER_FUNCTION 指向一個處理程序函數的指針

PROPENUMPROC 指向一個應用程序定義的回調函數的指針,該回調函數枚舉窗口特徵

PFNCALLBACK 指向一個回調函數的指針

PHANDLER_ROUTINE 指向一個處理程序的指針

TIMERPROC 指向一個應用程序定義的定時器回調函數的指針

WNDENUMPROC 指向一個應用程序定義的回調函數的指針,該回調函數枚舉窗口

WNDPROC 32-bit,指向一個應用程序定義的窗口過程的指針

YIELDPROC 指向一個輸出回調函數的指針


其他類:


標識符 實際類型 意義

ATOM WORD 原子(原子表中的一個字符串的參考)

CALLBACK 回調函數的定義標識

LPRESULT 作爲窗口函數或callback函數的返回值(32位數值)

LRESULT LONG 消息處理的符號結果

COLORREF DWORD 由紅、綠、藍(RGB)組成的彩色值(32位數值)

WINAPI APIENTRY 系統函數調用協議標識。

WPARAM UINT 消息參數

LPARAM LONG 消息參數,32-bit數值,作爲窗口函數或callback函數的一個參數

CRITICAL_SECTION 臨界段對象。

LPCRITICAL_SECTION 一個臨界段對象的指針(CRITICAL_SECTION)

CTRYID 國名標識符。

FMORDER 32位字體映射值的數組

LANGID WORD 語言標識符

LCID DWORD 所在國標識符

PLCID PDWORD 一個LCID型指針

LCTYPE 所在國類型

LPCOLORREF DWORD* 一個COLORREF型指針

MCIDEVICEID 媒體控制接口(MCI)設備標識符

MMRESULT 多媒體消息的處理結果

PCRITICAL_SECTION 指向一個臨界段對象(CRITICAL_SECTION)的指針

PHKEY 一個HKEY型指針

POINTER_32 32位指針。在32位系統中,是一個普通指針。在64位系統中,是一個去除了高字節的64位指針。

POINTER_64 64位指針。在64位系統中,是一個普通指針。在32位系統中,是被擴展了符號的32位指針。

PSID PVOID 指向一個加密標識符(SID)的指針

REGSAM 登記關鍵字的加密掩碼

SIZE_T unsigned int The maximum number of bytes to which a pointer can point.Use for a count that must span the full range of a pointer.

SSIZE_T 帶符號的SIZE_T型

UNSIGNED Unsigned attribute.


結構類:


標識符 實際類型 意義

LPCRECT const RECT FAR* RECT結構常量指針(32位)

LPCRECTL const RECTL FAR* RECTL結構常量指針(32位)

LUID LUID結構。局部唯一的標識符(Locally unique identifier)

PLUID LUID* 一個LUID型指針


空類:


標識符 實際類型 意義

CONST const 常量

VOID void 任何類型

PVOID void near* 一個指向任何類型的指針

LPVOID void far* 一個void型遠指針

LPCVOID CONST void far* 一個指向任何類型的常量指針

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