消息中有什么? 是否覺得一個(gè)消息記錄中的信息像希臘語一樣?如果是這樣,那么看一看下面的解釋: hwnd 32位的窗口句柄。窗口可以是任何類型的屏幕對象,因?yàn)閃in32能夠維護(hù)大多數(shù)可視對象的句柄(窗口、對話框、按鈕、編輯框等)。 message 用于區(qū)別其他消息的常量值,這些常量可以是Windows單元中預(yù)定義的常量,也可以是自定義的常量。 wParam 通常是一個(gè)與消息有關(guān)的常量值,也可能是窗口或控件的句柄。 lParam 通常是一個(gè)指向內(nèi)存中數(shù)據(jù)的指針。由于W P a r a m、l P a r a m和P o i n t e r都是3 2位的, 因此,它們之間可以相互轉(zhuǎn)換。
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ā)送此消息給剪貼板的所有者來請求一個(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ī)會實(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ā)送此消息給所有頂級并重疊的窗口,以此來改變系統(tǒng)調(diào)色板 WM_HOTKEY = $0312; 當(dāng)用戶按下由REGISTERHOTKEY函數(shù)注冊的熱鍵時(shí)提交此消息 WM_PRINT = 791; 應(yīng)用程序發(fā)送此消息僅當(dāng)WINDOWS或其它應(yīng)用程序發(fā)出一個(gè)請求要求繪制一個(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ù)器程序的會話來響應(yīng)那個(gè)指定的程序和主題名; WM_DDE_TERMINATE = WM_DDE_FIRST + 1; 一個(gè)DDE應(yīng)用程序(無論是客戶還是服務(wù)器)提交此消息來終止一個(gè)會話; WM_DDE_ADVISE = WM_DDE_FIRST + 2; 一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序來請求服務(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ù)程序來請求一個(gè)數(shù)據(jù)項(xiàng)的值; WM_DDE_POKE = WM_DDE_FIRST + 7; 一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序,客戶使用此消息來請求服務(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)條都會產(chǎn)生通知消息。 按扭 B N _ C L I C K E D //用戶單擊了按鈕 B N _ D I S A B L E //按鈕被禁止 B N _ D O U B L E C L I C K E D //用戶雙擊了按鈕 B N _ H I L I T E //用戶加亮了按鈕 B N _ PA I N T按鈕應(yīng)當(dāng)重畫 B N _ U N H I L I T E加亮應(yīng)當(dāng)去掉 組合框 C B N _ C L O S E U P組合框的列表框被關(guān)閉 C B N _ D B L C L K用戶雙擊了一個(gè)字符串 C B N _ D R O P D O W N組合框的列表框被拉出 C B N _ E D I T C H A N G E用戶修改了編輯框中的文本 C B N _ E D I T U P D AT E編輯框內(nèi)的文本即將更新 C B N _ E R R S PA C E組合框內(nèi)存不足 C B N _ K I L L F O C U S組合框失去輸入焦點(diǎn) C B N _ S E L C H A N G E在組合框中選擇了一項(xiàng) C B N _ S E L E N D C A N C E L用戶的選擇應(yīng)當(dāng)被取消 C B N _ S E L E N D O K用戶的選擇是合法的 C B N _ S E T F O C U S組合框獲得輸入焦點(diǎn) 編輯框 E N _ C H A N G E編輯框中的文本己更新 E N _ E R R S PA C E編輯框內(nèi)存不足 E N _ H S C R O L L用戶點(diǎn)擊了水平滾動(dòng)條 E N _ K I L L F O C U S編輯框正在失去輸入焦點(diǎn) E N _ M A X T E X T插入的內(nèi)容被截?cái)?br>E N _ S E T F O C U S編輯框獲得輸入焦點(diǎn) E N _ U P D AT E編輯框中的文本將要更新 E N _ V S C R O L L用戶點(diǎn)擊了垂直滾動(dòng)條消息含義 列表框 L B N _ D B L C L K用戶雙擊了一項(xiàng) L B N _ E R R S PA C E列表框內(nèi)存不夠 L B N _ K I L L F O C U S列表框正在失去輸入焦點(diǎn) L B N _ S E L C A N C E L選擇被取消 L B N _ S E L C H A N G E選擇了另一項(xiàng) L B N _ S E T F O C U S列表框獲得輸入焦點(diǎn)