sendmessage和postmessage的區別
PostMessage只負責將消息放到消息隊列中,不肯定什麼時候及是否處理 SendMessage要等到受到消息處理的返回碼(DWord類型)後才繼續 PostMessage執行後立刻返回 SendMessage必須等到消息被處理後纔會返回。windows
1、首先是返回值意義的區別,咱們先看一下 MSDN 裏的聲明:數組 LRESULT SendMessage( 其中 4 個參數的意義是同樣的,返回值類型不一樣(其實從數據上看他們同樣是一個 32 位的數,只是意義不同),LRESULT 表示的是消息被處理後的返回值,BOOL 表示的是消息是否是 Post 成功。異步 2、PostMessage 是異步的,SendMessage 是同步的。 3、若是在同一個線程內,SendMessage 發送消息時,由 USER32.DLL 模塊調用目標窗口的消息處理程序,並將結果返回。SendMessage 在同一線程中發送消息並不入線程消息隊列。PostMessage 發送消息時,消息要先放入線程的消息隊列,而後經過消息循環分派到目標窗口(DispatchMessage)。post 若是在不一樣線程內,SendMessage 發送消息到目標窗口所屬線程的消息隊列,而後發送消息的線程在 USER32.DLL 模塊內監視和等待消息處理,直到目標窗口處理完返回。SendMessage 在返回前還作了不少工做,好比,響應別的線程向它 SendMessage。Post 到別的線程時,最好用 PostThreadMessage 代替 PostMessage,PostMessage 的 hWnd 參數能夠是 NULL,等效於 PostThreadMessage + GetCurrentThreadId。Post WM_QUIT 時,應使用 PostQuitMessage 代替。字體 4、系統只整編(marshal)系統消息(0 到 WM_USER 之間的消息),發送用戶消息(WM_USER 以上)到別的進程時,須要本身作整編。ui 用 PostMessage、SendNotifyMessage、SendMessageCallback 等異步函數發送系統消息時,參數裏不可使用指針,由於發送者並不等待消息的處理就返回,接受者還沒處理指針就已經被釋放了。spa 5、在 Windows 2000/XP 裏,每一個消息隊列最多隻能存放 10,000 個 Post 的消息,超過的還沒被處理的將不會被處理,直接丟掉。這個值能夠改得更大:[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows] USERPostMessageLimit,最小能夠是 4000.net |
SendMessage參數大全
Windows是一個消息驅動式系統,SendMessage是應用程序和應用程序之間進行消息傳遞的主要手段之一,這裏我搜集整理了SendMessage函數的詳細參數介紹,以備自用。
LRESULT SendMessage(
HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
參數1:hWnd-窗口句柄。窗口能夠是任何類型的屏幕對象。
參數2:wMsg-用於區別其餘消息的常量值.
參數3:wParam-一般是一個與消息有關的常量值,也多是窗口或控件的句柄.
參數4: lParam-一般是一個指向內存中數據的指針。
wMsg參數常量值:
#DeFine WM_CREATE 0x01
建立一個窗口
#DeFine WM_DESTROY 0x02
當一個窗口被破壞時發送
#DeFine WM_MOVE 0x03
移動一個窗口
#DeFine WM_SIZE 0x05
改變一個窗口的大小
#DeFine WM_ACTIVATE 0x06
一個窗口被激活或失去激活狀態
#DeFine WM_SETFOCUS 0x07
一個窗口得到焦點
#DeFine WM_KILLFOCUS 0x08
一個窗口失去焦點
#DeFine WM_ENABLE 0x0A
一個窗口改變成Enable狀態
#DeFine WM_SETREDRAW 0x0B
設置窗口是否能重畫
#DeFine WM_SETTEXT 0x0C
應用程序發送此消息來設置一個窗口的文本
#DeFine WM_GETTEXT 0x0D
應用程序發送此消息來複制對應窗口的文本到緩衝區
#DeFine WM_GETTEXTLENGTH 0x0E
獲得與一個窗口有關的文本的長度(不包含空字符)
#DeFine WM_PAINT 0x0F
要求一個窗口重畫本身
#DeFine WM_CLOSE 0x10
當一個窗口或應用程序要關閉時發送一個信號
#DeFine WM_QUERYENDSESSION 0x11
當用戶選擇結束對話框或程序本身調用ExitWindows函數
#DeFine WM_QUIT 0x12
用來結束程序運行
#DeFine WM_QUERYOPEN 0x13
當用戶窗口恢復之前的大小位置時,把此消息發送給某個圖標
#DeFine WM_ERASEBKGND 0x14
當窗口背景必須被擦除時(例在窗口改變大小時)
#DeFine WM_SYSCOLORCHANGE 0x15
當系統顏色改變時,發送此消息給全部頂級窗口
#DeFine WM_ENDSESSION 0x16
當系統進程發出WM_QUERYENDSESSION消息後,此消息發送給應用程序,通知它對話是否結束
#DeFine WM_SHOWWINDOW 0x18
當隱藏或顯示窗口是發送此消息給這個窗口
#DeFine WM_ACTIVATEAPP 0x1C
發此消息給應用程序哪一個窗口是激活的,哪一個是非激活的
#DeFine WM_FONTCHANGE 0x1D
當系統的字體資源庫變化時發送此消息給全部頂級窗口
#DeFine WM_TIMECHANGE 0x1E
當系統的時間變化時發送此消息給全部頂級窗口
#DeFine WM_CANCELMODE 0x1F
發送此消息來取消某種正在進行的摸態(操做)
#DeFine WM_SETCURSOR 0x20
若是鼠標引發光標在某個窗口中移動且鼠標輸入沒有被捕獲時,就發消息給某個窗口
#DeFine WM_MOUSEACTIVATE 0x21
當光標在某個非激活的窗口中而用戶正按着鼠標的某個鍵發送此消息給當前窗口
#DeFine WM_CHILDACTIVATE 0x22
發送此消息給MDI子窗口當用戶點擊此窗口的標題欄,或當窗口被激活,移動,改變大小
#DeFine WM_QUEUESYNC 0x23
此消息由基於計算機的訓練程序發送,經過WH_JOURNALPALYBACK的hook程序分離出用戶輸入消息
#DeFine WM_GETMINMAXINFO 0x24
此消息發送給窗口當它將要改變大小或位置
#DeFine WM_PAINTICON 0x26
發送給最小化窗口當它圖標將要被重畫
#DeFine WM_ICONERASEBKGND 0x27
此消息發送給某個最小化窗口,僅當它在畫圖標前它的背景必須被重畫
#DeFine WM_NEXTDLGCTL 0x28
發送此消息給一個對話框程序去更改焦點位置
#DeFine WM_SPOOLERSTATUS 0x2A
每當打印管理列隊增長或減小一條做業時發出此消息
#DeFine WM_DRAWITEM 0x2B
當button,combobox,listbox,menu的可視外觀改變時發送
#DeFine WM_MEASUREITEM 0x2C
當button, combo box, list box, list view control, or menu item 被建立時
#DeFine WM_VKEYTOITEM 0x2E
此消息有一個LBS_WANTKEYBOARDINPUT風格的發出給它的全部者來響應WM_KEYDOWN消息
#DeFine WM_CHARTOITEM 0x2F
此消息由一個LBS_WANTKEYBOARDINPUT風格的列表框發送給他的全部者來響應WM_CHAR消息
#DeFine WM_SETFONT 0x30
當繪製文本時程序發送此消息獲得控件要用的顏色
#DeFine WM_GETFONT 0x31
應用程序發送此消息獲得當前控件繪製文本的字體
#DeFine WM_SETHOTKEY 0x32
應用程序發送此消息讓一個窗口與一個熱鍵相關連
#DeFine WM_GETHOTKEY 0x33
應用程序發送此消息來判斷熱鍵與某個窗口是否有關聯
#DeFine WM_QUERYDRAGICON 0x37
此消息發送給最小化窗口,當此窗口將要被拖放而它的類中沒有定義圖標,應用程序能返回一個圖標或光標的句柄,當用戶拖放圖標時系統顯示這個圖標或光標
#DeFine WM_COMPAREITEM 0x39
發送此消息來斷定combobox或listbox新增長的項的相對位置
#DeFine WM_COMPACTING 0x41
顯示內存已經不多了
#DeFine WM_WINDOWPOSCHANGING 0x46
發送此消息給那個窗口的大小和位置將要被改變時,來調用setwindowpos函數或其它窗口管理函數
#DeFine WM_WINDOWPOSCHANGED 0x47
發送此消息給那個窗口的大小和位置已經被改變時,來調用setwindowpos函數或其它窗口管理函數
#DeFine WM_POWER 0x48
當系統將要進入暫停狀態時發送此消息
#DeFine WM_COPYDATA 0x4A
當一個應用程序傳遞數據給另外一個應用程序時發送此消息
#DeFine WM_CANCELJOURNA 0x4B
當某個用戶取消程序日誌激活狀態,提交此消息給程序
#DeFine WM_NOTIFY 0x4E
當某個控件的某個事件已經發生或這個控件須要獲得一些信息時,發送此消息給它的父窗口
#DeFine WM_INPUTLANGCHANGEREQUEST 0x50
當用戶選擇某種輸入語言,或輸入語言的熱鍵改變
#DeFine WM_INPUTLANGCHANGE 0x51
當平臺現場已經被改變後發送此消息給受影響的最頂級窗口
#DeFine WM_TCARD 0x52
當程序已經初始化windows幫助例程時發送此消息給應用程序
#DeFine WM_HELP 0x53
此消息顯示用戶按下了F1,若是某個菜單是激活的,就發送此消息個此窗口關聯的菜單,不然就發送給有焦點的窗口,若是當前都沒有焦點,就把此消息發送給當前激活的窗口
#DeFine WM_USERCHANGED 0x54
當用戶已經登入或退出後發送此消息給全部的窗口,當用戶登入或退出時系統更新用戶的具體設置信息,在用戶更新設置時系統立刻發送此消息
#DeFine WM_NOTIFYFORMAT 0x55
公用控件,自定義控件和他們的父窗口經過此消息來判斷控件是使用ANSI仍是UNICODE結構
#DeFine WM_CONTEXTMENU ??
當用戶某個窗口中點擊了一下右鍵就發送此消息給這個窗口
#DeFine WM_STYLECHANGING 0x7C
當調用SETWINDOWLONG函數將要改變一個或多個 窗口的風格時發送此消息給那個窗口
#DeFine WM_STYLECHANGED 0x7D
當調用SETWINDOWLONG函數一個或多個 窗口的風格後發送此消息給那個窗口
#DeFine WM_DISPLAYCHANGE 0x7E
當顯示器的分辨率改變後發送此消息給全部的窗口
#DeFine WM_GETICON 0x7F
此消息發送給某個窗口來返回與某個窗口有關連的大圖標或小圖標的句柄
#DeFine WM_SETICON 0x80
程序發送此消息讓一個新的大圖標或小圖標與某個窗口關聯
#DeFine WM_NCCREATE 0x81
當某個窗口第一次被建立時,此消息在WM_CREATE消息發送前發送
#DeFine WM_NCDESTROY 0x82
此消息通知某個窗口,非客戶區正在銷燬
#DeFine WM_NCCALCSIZE 0x83
當某個窗口的客戶區域必須被覈算時發送此消息
#DeFine WM_NCHITTEST 0x84
移動鼠標,按住或釋放鼠標時發生
#DeFine WM_NCPAINT 0x85
程序發送此消息給某個窗口當它(窗口)的框架必須被繪製時
#DeFine WM_NCACTIVATE 0x86
此消息發送給某個窗口僅當它的非客戶區須要被改變來顯示是激活仍是非激活狀態
#DeFine WM_GETDLGCODE 0x87
發送此消息給某個與對話框程序關聯的控件,widdows控制方位鍵和TAB鍵使輸入進入此控件經過應
#DeFine WM_NCMOUSEMOVE 0xA0
當光標在一個窗口的非客戶區內移動時發送此消息給這個窗口 非客戶區爲:窗體的標題欄及窗 的邊框體
#DeFine WM_NCLBUTTONDOWN 0xA1
當光標在一個窗口的非客戶區同時按下鼠標左鍵時提交此消息
#DeFine WM_NCLBUTTONUP 0xA2
當用戶釋放鼠標左鍵同時光標某個窗口在非客戶區十發送此消息
#DeFine WM_NCLBUTTONDBLCLK 0xA3
當用戶雙擊鼠標左鍵同時光標某個窗口在非客戶區十發送此消息
#DeFine WM_NCRBUTTONDOWN 0xA4
當用戶按下鼠標右鍵同時光標又在窗口的非客戶區時發送此消息
#DeFine WM_NCRBUTTONUP 0xA5
當用戶釋放鼠標右鍵同時光標又在窗口的非客戶區時發送此消息
#DeFine WM_NCRBUTTONDBLCLK 0xA6
當用戶雙擊鼠標右鍵同時光標某個窗口在非客戶區十發送此消息
#DeFine WM_NCMBUTTONDOWN 0xA7
當用戶按下鼠標中鍵同時光標又在窗口的非客戶區時發送此消息
#DeFine WM_NCMBUTTONUP 0xA8
當用戶釋放鼠標中鍵同時光標又在窗口的非客戶區時發送此消息
#DeFine WM_NCMBUTTONDBLCLK 0xA9
當用戶雙擊鼠標中鍵同時光標又在窗口的非客戶區時發送此消息
#DeFine WM_KEYFIRST 0x100
WM_KEYDOWN 按下一個鍵
#DeFine WM_KEYUP 0x101
釋放一個鍵
#DeFine WM_CHAR 0x102
按下某鍵,並已發出WM_KEYDOWN, WM_KEYUP消息
#DeFine WM_DEADCHAR 0x103
當用translatemessage函數翻譯WM_KEYUP消息時發送此消息給擁有焦點的窗口
#DeFine WM_SYSKEYDOWN 0x104
當用戶按住ALT鍵同時按下其它鍵時提交此消息給擁有焦點的窗口
#DeFine WM_SYSKEYUP 0x105
當用戶釋放一個鍵同時ALT 鍵還按着時提交此消息給擁有焦點的窗口
#DeFine WM_SYSCHAR 0x106
當WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數翻譯後提交此消息給擁有焦點的窗口
#DeFine WM_SYSDEADCHAR 0x107
當WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數翻譯後發送此消息給擁有焦點的窗口
#DeFine WM_INITDIALOG 0x110
在一個對話框程序被顯示前發送此消息給它,一般用此消息初始化控件和執行其它任務
#DeFine WM_COMMAND 0x111
當用戶選擇一條菜單命令項或當某個控件發送一條消息給它的父窗口,一個快捷鍵被翻譯
#DeFine WM_SYSCOMMAND 0x112
當用戶選擇窗口菜單的一條命令或當用戶選擇最大化或最小化時那個窗口會收到此消息
#DeFine WM_TIMER 0x113
發生了定時器事件
#DeFine WM_HSCROLL 0x114
當一個窗口標準水平滾動條產生一個滾動事件時發送此消息給那個窗口,也發送給擁有它的控件
#DeFine WM_VSCROLL 0x115
當一個窗口標準垂直滾動條產生一個滾動事件時發送此消息給那個窗口也,發送給擁有它的控件
#DeFine WM_INITMENU 0x116
當一個菜單將要被激活時發送此消息,它發生在用戶菜單條中的某項或按下某個菜單鍵,它容許程序在顯示前更改菜單
#DeFine WM_INITMENUPOPUP 0x117
當一個下拉菜單或子菜單將要被激活時發送此消息,它容許程序在它顯示前更改菜單,而不要改變所有
#DeFine WM_MENUSELECT 0x11F
當用戶選擇一條菜單項時發送此消息給菜單的全部者(通常是窗口)
#DeFine WM_MENUCHAR 0x120
當菜單已被激活用戶按下了某個鍵(不一樣於加速鍵),發送此消息給菜單的全部者
#DeFine WM_ENTERIDLE 0x121
當一個模態對話框或菜單進入空載狀態時發送此消息給它的全部者,一個模態對話框或菜單進入空載狀態就是在處理完一條或幾條先前的消息後沒有消息它的列隊中等待
#DeFine WM_CTLCOLORMSGBOX 0x132
在windows繪製消息框前發送此消息給消息框的全部者窗口,經過響應這條消息,全部者窗口能夠經過使用給定的相關顯示設備的句柄來設置消息框的文本和背景顏色
#DeFine WM_CTLCOLOREDIT 0x133
當一個編輯型控件將要被繪製時發送此消息給它的父窗口 經過響應這條消息,全部者窗口能夠經過使用給定的相關顯示設備的句柄來設置編輯框的文本和背景顏色
#DeFine WM_CTLCOLORLISTBOX 0x134
當一個列表框控件將要被繪製前發送此消息給它的父窗口 經過響應這條消息,全部者窗口能夠經過使用給定的相關顯示設備的句柄來設置列表框的文本和背景顏色
#DeFine WM_CTLCOLORBTN 0x135
當一個按鈕控件將要被繪製時發送此消息給它的父窗口 經過響應這條消息,全部者窗口能夠經過使用給定的相關顯示設備的句柄來設置按紐的文本和背景顏色
#DeFine WM_CTLCOLORDLG 0x136
當一個對話框控件將要被繪製前發送此消息給它的父窗口 經過響應這條消息,全部者窗口能夠經過使用給定的相關顯示設備的句柄來設置對話框的文本背景顏色
#DeFine WM_CTLCOLORSCROLLBAR 0x137
當一個滾動條控件將要被繪製時發送此消息給它的父窗口 經過響應這條消息,全部者窗口能夠經過使用給定的相關顯示設備的句柄來設置滾動條的背景顏色
#DeFine WM_CTLCOLORSTATIC 0x138
當一個靜態控件將要被繪製時發送此消息給它的父窗口 經過響應這條消息,全部者窗口能夠 經過使用給定的相關顯示設備的句柄來設置靜態控件的文本和背景顏色
#DeFine WM_MOUSEFIRST 0x200
移動鼠標時發生
#DeFine WM_MOUSEMOVE 0x200
移動鼠標時發生,同WM_MOUSEFIRST
#DeFine WM_LBUTTONDOWN 0x201
按下鼠標左鍵
#DeFine WM_LBUTTONUP 0x202
釋放鼠標左鍵
#DeFine WM_LBUTTONDBLCLK 0x203
雙擊鼠標左鍵
#DeFine WM_RBUTTONDOWN 0x204
按下鼠標右鍵
#DeFine WM_RBUTTONUP 0x205
釋放鼠標右鍵
#DeFine WM_RBUTTONDBLCLK 0x206
雙擊鼠標右鍵
#DeFine WM_MBUTTONDOWN 0x207
按下鼠標中鍵
#DeFine WM_MBUTTONUP 0x208
釋放鼠標中鍵
#DeFine WM_MBUTTONDBLCLK 0x209
雙擊鼠標中鍵
#DeFine WM_MOUSEWHEEL 0x20A
當鼠標輪子轉動時發送此消息個當前有焦點的控件
===================
Button
===================
BM_CLICK button被點擊 消息
BM_GETCHECK 用於check boxes 或radio boxes 。查看 是否 checked 了。
BM_GETSTATE 發送此消息,可返回 button 的狀態,如 是否被 checked;是否 可用(不可用就 變灰了)
BM_SETCHECK 若是 已經 checked 了,發送此消息後,變爲 unchecked,就是 那個鉤鉤 沒被 選上。ok?
BM_SETSTATE 設置 button被 點擊 狀態。
====================
Combo
===================
CB_ADDSTRING 添加 字符串到 Combo Boxes 。
CB_DELETESTRING 刪除 Combo Boxes 中的 條目,既 item
CB_GETCOUNT 獲得 Combo Boxes 條目 item 的 數目
CB_GETCURSEL 返回 Combo Boxes 中被選 條目 在 Combo Boxes 中 的位置,第一條爲0 。
若是 沒有 條目或出錯,則返回 -1
CB_GETDROPPEDSTATE 發送此消息,可判斷 Combo Boxes 的list box 是否被 放下,若是 是,返回 非零值,不是,則 返回 0
CB_GETLBTEXT 獲得 combo box 的 條目 的text。 返回值 是 這個text 的長度。
CB_GETLBTEXTLEN 返回值 是 條目的 text 的長度。
CB_INSERTSTRING 插入 字符串 條目到 combo box 中
CB_RESETCONTENT 清空 combo box 全部條目
CB_SETCURSEL 設置 combo box 被選 條目。
CB_SHOWDROPDOWN 讓 combo box 的listbox 下拉。 既 顯出 全部 條目
===================
Edit
===================
EM_CANUNDO 決定 上一次操做 是否能夠 undo (撤消操做)。若是能夠,則可發送 EM_undo
EM_GETFIRSTVISIBLELINE 在 multi-line 控件中,找到 最上層的 可見的 行號。次行號是相對於 全部行的。
EM_GETPASSWORDCHAR 返回 密碼框的 字符集。既 是查看密碼。
EM_GETSEL 返回在 可編輯 控件中 ,被選擇(HIGHLIGHT高量選擇)的字符集 的 起點 和終點的 位置。
用 sendmessage 的wParam 參數 返回 起點位置,lParam 返回 終點位置
EM_REPLACESEL 用不一樣的字符串 替換 可編輯 控件 中的 字符串,若是 可編輯 控件中 沒有 字符串,則 此消息變爲 添加 字符串
EM_SETPASSWORDCHAR 在可編輯 控件中 設置 密碼字符集 ,既 用* 代替
EM_UNDO 發送 操做 撤消 消息。
======================
IP Address
===================
IPM_CLEARADDRESS 清除 IP 地址控件(IP Address control)的內容
IPM_GETADDRESS 從IP 地址控件 得到 存儲在 它中的 IP 地址 信息/
IPM_ISBLANK 決定 IP 地址控件 是否能夠爲 空值。既 127.0.0.1 之類的地址 爲 空。
IPM_SETADDRESS 在 IP 地址控件中設置 IP 地址。
IPM_SETFOCUS 在 IP 地址控件中,當須要輸入 IP 地址時, 使之得到 鍵盤輸入 焦點
IPM_SETRANGE 設置 輸入IP 地址的有效範圍
=====================
Media Control Interface (MCI)
=============================
MM_MCINOTIFY 告訴 窗體 MCI 命令 完成的狀態. 這個 狀態包括 success, failure, 或 其它事件
菜單
=============================
WM_COMMAND 當 用戶 選擇 菜單中的 項目後,將向 窗體 發送此消息. 窗體 受到 此消息後,再 決定 下一個 行爲
WM_INITMENU 當 菜單 準備 顯示 前,向 窗體發送 此消息, 窗體 將 初始化 菜單 項.
WM_SYSCOMMAND 向 窗體 發送 用戶點擊 系統菜單 消息. 窗體將 響應 這個消息 ,決定 下個 行爲.
================
窗口消息
=====================
WM_CLOSE 發送 讓窗體關閉的消息,有些窗體會 在此時 彈出個 關閉對話框。
WM_GETTEXT 返回 窗體 標題欄 (caption 屬性)。 須要先 用WM_GETTEXTLENGTH 得到 字符串長度
WM_GETTEXTLENGTH 見上!
WM_HELP 發送此 消息後,將 顯示 指定的 HELP 文件
WM_SETTEXT 設置 窗體 標題欄 。
==============================
ListBox
===============
LB_ADDSTRING 在條目中添加 字符串
LB_DELETESTRING 刪除一個 條目. 條目 序號是從 0 開始的.
LB_GETCOUNT 獲得 條目總數.
LB_GETCURSEL 獲得 單選 的list box 的 選項條目的 序號
LB_GETSEL 判斷 list 的 條目 是否被選上, 若是 選上了,則返回 >0 的值.不然 返回 0 ,表示 用戶沒選擇條目
LB_GETSELCOUNT 得到 可多選 的list , 被用戶選擇的條目的個數.
LB_GETSELITEMS 返回 可多選的list 的 被選條目的 序號. 可返回 數組.
LB_GETTEXT 獲得 list中的 一個 條目的 text 值
LB_GETTEXTLEN 獲得 list中的 一個 條目的 text 值的長度
LB_INSERTSTRING 在list 中,插入 一個條目。若是成功,將返回 插入後,此條目的序號。
LB_RESETCONTENT 清空 全部的 list 中的 條目。
LB_SETCURSEL 對單選 的list box, 設定 用戶 選擇條目的 具體值
LB_SETSEL 對多選 的list box, 設定 用戶 選擇條目的 具體值
=======================================================
鼠標
==================
WM_LBUTTONDBLCLK 當鼠標在一個窗體範圍內時,告訴此窗體 鼠標左鍵 已雙擊 。返回值 0
WM_LBUTTONDOWN 當鼠標在一個窗體範圍內時,告訴此窗體 鼠標左鍵 已點擊,返回值 0
WM_LBUTTONUP 當鼠標在一個窗體範圍內時,告訴此窗體 鼠標左鍵 已釋放,返回值 0
WM_MBUTTONDBLCLK 當鼠標在一個窗體範圍內時,告訴此窗體 鼠標中鍵 已雙擊 。返回值 0
WM_MBUTTONDOWN 當鼠標在一個窗體範圍內時,告訴此窗體 鼠標中鍵 已點擊,返回值 0
WM_MBUTTONUP 當鼠標在一個窗體範圍內時,告訴此窗體 鼠標中鍵 已釋放,返回值 0