SendMessage和PostMessage

?

SendMessage 和 PostMessage 的區別

1、首先是返回值意義的區別,我們先看一下?MSDN?里的聲明:

LRESULT?SendMessage(
????????HWND?hWnd,
????????UINT?Msg,
????????WPARAM?wParam,
????????LPARAM?lParam
);
BOOL?PostMessage(
????????HWND?hWnd,
????????UINT?Msg,
????????WPARAM?wParam,
????????LPARAM?lParam
);

  其中?4?個參數的意義是一樣的,返回值類型不同(其實從數據上看他們一樣是一個?32?位的數,只是意義不一樣),LRESULT?表示的是消息被處理后的返回值,BOOL?表示的是消息是不是?Post?成功。

2、PostMessage?是異步的,SendMessage?是同步的。
  PostMessage?只把消息放入隊列,不管消息是否被處理就返回,消息可能不被處理;而?SendMessage?等待消息被處理完了之后才返回,如果消息不被處理,發送消息的線程將一直被阻塞。

3、如果在同一個線程內,SendMessage?發送消息時,由?USER32.DLL?模塊調用目標窗口的消息處理程序,并將結果返回。SendMessage?在同一線程中發送消息并不入線程消息隊列。PostMessage?發送消息時,消息要先放入線程的消息隊列,然后通過消息循環分派到目標窗口(DispatchMessage)。

  如果在不同線程內,SendMessage?發送消息到目標窗口所屬線程的消息隊列,然后發送消息的線程在?USER32.DLL?模塊內監視和等待消息處理,直到目標窗口處理完返回。SendMessage?在返回前還做了很多工作,比如,響應別的線程向它?SendMessage。Post?到別的線程時,最好用?PostThreadMessage?代替?PostMessage,PostMessage?的?hWnd?參數可以是?NULL,等效于?PostThreadMessage?+?GetCurrentThreadId。Post?WM_QUIT?時,應使用?PostQuitMessage?代替。

4、系統只整編(marshal)系統消息(0?到?WM_USER?之間的消息),發送用戶消息(WM_USER?以上)到別的進程時,需要自己做整編。

  用?PostMessage、SendNotifyMessage、SendMessageCallback?等異步函數發送系統消息時,參數里不可以使用指針,因為發送者并不等待消息的處理就返回,接受者還沒處理指針就已經被釋放了。

5、在?Windows?2000/XP?里,每個消息隊列最多只能存放?10,000?個?Post?的消息,超過的還沒被處理的將不會被處理,直接丟掉。這個值可以改得更大:[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows?NT/CurrentVersion/Windows]?USERPostMessageLimit,最小可以是?4000

?

?

?

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


?

轉載于:https://www.cnblogs.com/wind-net/archive/2012/11/01/2750123.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379168.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ffmpeg-從mp4、flv、ts文件中提取264視頻流數據

ffmpeg-從mp4、flv、ts文件中提取264視頻流數據 main.c #include <stdio.h> #include <libavutil/log.h> #include <libavformat/avio.h> #include <libavformat/avformat.h>void proc(int need_to_annexb, char* in_file, char* out_file) {AVForma…

java timezone_Java TimeZone getDSTSavings()方法與示例

java timezoneTimeZone類的getDSTSavings()方法 (TimeZone Class getDSTSavings() method) getDSTSavings() method is available in java.util package. getDSTSavings()方法在java.util包中可用。 getDSTSavings() method is used to get the number of time differences in …

Photoshop 保存PNG格式交錯和不交錯有差別

1.PNG格式是由Netscape公司開發出來的格式&#xff0c;可以用于網絡圖像&#xff0c;但它不同于GIF格式圖像只能保存256色&#xff0c;PNG格式可以保存24位的真彩色圖像&#xff0c;并且支持透明背景和消除鋸齒邊緣的功能&#xff0c;可以在不失真的情況下壓縮保存圖像。但由于…

線索化二叉樹(代碼 、分析 、匯編)

目錄&#xff1a;代碼&#xff1a;分析&#xff1a;匯編&#xff1a;代碼&#xff1a; BTree.h BTree.c 二叉樹&#xff08;多路平衡搜索樹&#xff09; SeqList.h SeqList.c 順序表 main.c #include <stdio.h> #include <stdlib.h> #include "BTree.h&qu…

Python---尋找給定序列中相差最小的兩個數字

編寫函數&#xff0c;尋找給定序列中相差最小的兩個數字 def getTwoClosestElements(arr):#先進行排序&#xff0c;使得相鄰元素最接近#相差最小的元素必然相鄰seq sorted(arr)#先進行排序dif float(inf)#無窮大#遍歷所有元素&#xff0c;兩兩比較&#xff0c;比較相鄰元素的…

ubuntu 無線 共享 上網

配置DHCP服務器 使連接到此AP的電腦 自動獲取IP 1. 安裝軟件包&#xff1a;sudo apt-get install dhcp3-server2. 修改/etc/default/dhcp3-server配置文件INTERFACES"eth1" //eth1為無線網卡的名字3. 修改/etc/dhcp3/dhcpd.conf配置文件option domain-name-servers …

Java StringBuilder getChars()方法與示例

StringBuilder類的getChars()方法 (StringBuilder Class getChars() method) getChars() method is available in java.lang package. getChars()方法在java.lang包中可用。 getChars() method is used to copy all the characters from the given arguments (int src_st, int …

Python---利用蒙特.卡羅方法計算圓周率近似值

利用蒙特.卡羅方法計算圓周率近似值 什么是蒙特.卡羅方法&#xff1f; 答&#xff1a;蒙特卡羅方法是一種計算方法。原理是通過大量隨機樣本&#xff0c;去了解一個系統&#xff0c;進而得到所要計算的值。 正方形內部有一個相切的圓&#xff0c;它們的面積之比是π/4。 這里假…

不具有繼承關系的Delegate如何進行類型轉換?

- 引自:Artech 我們知道對于兩個不具有繼承關系的兩個類型&#xff0c;如果沒有為它們定義轉換器&#xff0c;兩這之間的類型轉換是不允許的&#xff0c;Delegate也是如此。但是有時候我們卻希望“兼容”的兩種Delegate類型能夠進行轉換&#xff0c;比較典型的就是表示事件的De…

Java屬性loadFromXML()方法與示例

屬性類loadFromXML()方法 (Properties Class loadFromXML() method) loadFromXML() method is available in java.util package. loadFromXML()方法在java.util包中可用。 loadFromXML() method is used to load all the properties denoted by the XML file on the given inpu…

FLV封裝格式的分析

FLV封裝格式的分析&#xff0c;各種詳細的參數比較多沒有詳細解釋&#xff0c;這是總體的格式分布。詳細的參數說明可以參照文檔。 以flv格式內封裝的音頻流是aac、視頻流是h264分析&#xff1a; flv文件tag部分截圖&#xff1a;可以看到音頻TAG、視頻TAG是交錯存儲的

《計算機基礎復習》===數據庫技術基礎

數據庫系統三級結構&#xff1a; 數據庫系統一般劃分為三個抽象級&#xff1a;用戶級、概念級、物理級。 1&#xff09;用戶級數據庫&#xff1a;對應于外模式。它是用戶看到和使用的數據庫&#xff0c;又稱用戶視圖&#xff1b;用戶級數據庫主要由外部記錄組成&#xff0c;不同…

bs架構 erp 進銷存_從依賴經驗到用柔性ERP,企業少走了多少彎路?

企業在面對緊急訂單時&#xff0c;傳統企業將面臨兩難問題&#xff1a;如不接受緊急訂單,可能會導致潛在的顧客丟失,損失市場占有率;接受緊急訂單,可能會給企業帶來很多管理上的問題,如材料采購、庫存管理等。而企業通過信息化手段提升生產計劃與控制的柔性&#xff0c;則可從容…

Python---統計《三國演義》中出現次數較高的人物

統計《三國演義》中出現次數較高的人物。 import jieba excludes{"先主","將軍","卻說","荊州","二人","不可","不能","如此","忽然","下馬","喊聲","馬…

Java RandomAccessFile close()方法與示例

RandomAccessFile類close()方法 (RandomAccessFile Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to close this RandomAccessFile stream and free all other system resources linked wit…

云端: 小軟件大平臺,綠色又安全 V0.9 Beta3(090722)

云端 是一個小軟件&#xff0c;但又是一個大平臺。安裝云端之后&#xff0c;再使用其他軟件不再需要安裝——一點、下載、直接使用&#xff1b;并且&#xff0c;通過虛擬化的運行環境&#xff0c;能夠保持系統長久的干凈、綠色&#xff0c;并保持軟件與系統的安全隔離——此方面…

MGraph圖(代碼、分析、匯編)

目錄:代碼&#xff1a;分析&#xff1a;匯編&#xff1a;MGrapth圖表示有鄰接矩陣的方式構成的圖結構。鄰接矩陣用兩個數組保存數據&#xff0c;一個一維數組存儲圖中的頂點信息&#xff0c;一個二維數組存儲圖中邊或弧的信息。無向圖中的二維數組是個對稱矩陣 1.0表示無邊&…

java: 程序包lombok不存在_Java開發神器:Lombok 學習指南

點擊上方“Java知音”&#xff0c;選擇“置頂公眾號”技術文章第一時間送達&#xff01;作者&#xff1a;semlinkerwww.segmentfault.com/a/1190000020864572一、Lombok 簡介Lombok 是一款 Java 開發插件&#xff0c;使得 Java 開發者可以通過其定義的一些注解來消除業務工程中…

Python---編程檢查并判斷密碼字符串的安全強度

編程檢查并判斷密碼字符串的安全強度 passwordinput("請輸入你的密碼&#xff1a;") plist(password) x0 for i in p:if i " ":x1 if x1:print("密碼格式不對")#密碼中不能包含空格 elif password.isdigit()True or password.isalpha()True:#全…

CFUpdate上傳控件的使用

一同事找的這個控件&#xff0c;覺得挺不錯的&#xff0c;到官方(http://www.access2008.cn/)下載源碼后稍加修改 html頁面代碼&#xff1a; <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"zh_cn" lang"zh_cn"> <head> <m…