SendMessage函式完全使用手冊 轉

2022-01-23 21:18:54 字數 4074 閱讀 5388

sendmessage函式完全使用手冊

首先 我們了解一下windows的訊息機制。windows是乙個訊息驅動式系統,windows訊息提**用程式與應用程式之間,應用程式與windows系統之間進行通訊的手段。

舉個例子,開啟記事本程式,該程式有乙個 「檔案「選單。 那麼,在執行該程式的時候,如果使用者單擊「檔案選單「裡的「新建「命令,

這個動作將被windows所捕捉,windows經過分析得知這個動作應該由我們開啟的記事本程式所來處理,然後windows就傳送個訊息

譬如我們程式設計的時候有時用到的 wm_command的訊息給記事本,然後記事本就把這個訊息處理掉。 這個過程就是訊息處理。

接下來,我們把sendmessage的完整形式講一下sendmessage

declare function sendmessage lib "user32" alias "sendmessagea" (byval

hwnd as long, byval wmsg as long, byval wparam as long, lparam as any)

訊息在wm_create訊息傳送前傳送

wm_ncdestroy 此訊息通知某個視窗,非客戶區

正在銷毀

wm_nccalcsize 當某個視窗的客戶區域必須被核

算時傳送此訊息

wm_nchittest 移動滑鼠,按住或釋放滑鼠時發

生wm_ncpaint 程式傳送此訊息給某個視窗當它

(視窗)的框架必須被繪製時

wm_ncactivate 此訊息傳送給某個視窗僅當它的

非客戶區需要被改變來顯示是啟用還是非啟用狀態

wm_getdlgcode 傳送此訊息給某個與對話方塊程式

關聯的控制項,widdows控制方位鍵和tab鍵使輸入進入此控制項通過應

wm_ncmousemove 當游標在乙個視窗的非客戶區內移動時傳送此訊息給這個視窗 非客戶區為:窗體的標題欄及窗 的邊框體

wm_nclbuttondown 當游標在乙個視窗的非客戶區同時按下滑鼠左鍵時提交此訊息

wm_nclbuttonup 當使用者釋放滑鼠左鍵同時游標某個視窗在非客戶區十傳送此訊息

wm_nclbuttondblclk 當使用者雙擊滑鼠左鍵同時游標某個視窗在非客戶區十傳送此訊息

wm_ncrbuttondown 當使用者按下滑鼠右鍵同時游標又在視窗的非客戶區時傳送此訊息

wm_ncrbuttonup 當使用者釋放滑鼠右鍵同時游標又在視窗的非客戶區時傳送此訊息

wm_ncrbuttondblclk 當使用者雙擊滑鼠右鍵同時游標某個視窗在非客戶區十傳送此訊息

wm_ncmbuttondown 當使用者按下滑鼠中鍵同時游標又在視窗的非客戶區時傳送此訊息

wm_ncmbuttonup 當使用者釋放滑鼠中鍵同時游標又在視窗的非客戶區時傳送此訊息

wm_ncmbuttondblclk 當使用者雙擊滑鼠中鍵同時游標又在視窗的非客戶區時傳送此訊息

wm_keyfirst wm_keydown 按下乙個鍵

wm_keyup 釋放乙個鍵

wm_char 按下某鍵,並已發出wm_keydown, wm_keyup訊息

wm_deadchar 當用translatemessage函式翻譯

wm_keyup訊息時傳送此訊息給擁有焦點的視窗

wm_syskeydown 當使用者按住alt鍵同時按下其它

鍵時提交此訊息給擁有焦點的視窗

wm_syskeyup 當使用者釋放乙個鍵同時alt 鍵

還按著時提交此訊息給擁有焦點的視窗

wm_syschar 當wm_syskeydown訊息

被translatemessage函式翻譯後提交此訊息給擁有焦點的視窗

wm_sysdeadchar 當wm_syskeydown訊息

被translatemessage函式翻譯後傳送此訊息給擁有焦點的視窗

wm_initdialog 在乙個對話方塊程式被顯示前發

送此訊息給它,通常用此訊息初始化控制項和執行其它任務

wm_command 當使用者選擇一條選單命令項或當某個控制項傳送一條訊息給它的父視窗,乙個快捷鍵被翻譯

wm_syscommand 當使用者選擇視窗選單的一條命

令或當使用者選擇最大化或最小化時那個視窗會收到此訊息

wm_timer 發生了定時器事件

wm_hscroll 當乙個視窗標準水平滾動條產生乙個滾動事件時傳送此訊息給那個視窗,也傳送給擁有它的控制項

wm_vscroll 當乙個視窗標準垂直滾動條產生乙個滾動事件時傳送此訊息給那個視窗也,傳送給擁有它的控制項

wm_initmenu 當乙個選單將要被啟用時傳送此訊息,它發生在使用者選單條中的某項或按下某個菜單鍵,它允許程式在顯示前更改選單

wm_initmenupopup 當乙個下拉列表或子選單將要被啟用時傳送此訊息,它允許程式在它顯示前更改選單,而不要改變全部

wm_menuselect 當使用者選擇一條選單項時傳送

此訊息給選單的所有者(一般是視窗)

wm_menuchar 當選單已被啟用使用者按下了某個鍵(不同於加速鍵),傳送此訊息給選單的所有者

wm_enteridle 當乙個模態對話方塊或選單進入空載狀態時傳送此訊息給它的所有者,乙個模態對話方塊或選單進入空載狀態就是在處理完一條或幾條先前的訊息後沒有訊息它的列隊中等待

wm_ctlcolormsgbox 在windows繪製訊息框前傳送此訊息給訊息框的所有者視窗,通過響應這條訊息,所有者視窗可以通過使用給定的相關顯示裝置的控制代碼來設定訊息框的文字和背景顏色

wm_ctlcoloredit 當乙個編輯型控制項將要被繪製

時傳送此訊息給它的父視窗 通過響應這條訊息,所有者視窗可以通過使用給定的相關顯示裝置的控制代碼來設定編輯框的文字和背景顏色

wm_ctlcolorlistbox 當乙個列表框控制項將要被繪製前傳送此訊息給它的父視窗 通過響應這條訊息,所有者視窗可以通過使用給定的相關顯示裝置的控制代碼來設定列表框的文字和背景顏色

wm_ctlcolorbtn 當乙個按鈕控制項將要被繪製時

傳送此訊息給它的父視窗 通過響應這條訊息,所有者視窗可以通過使用給定的相關顯示裝置的控制代碼來設定按紐的文字和背景顏色

wm_ctlcolordlg 當乙個對話方塊控制項將要被繪製

前傳送此訊息給它的父視窗,通過響應這條訊息,所有者視窗可以通過使用給定的相關顯示裝置的控制代碼來設定對話方塊的文字背景顏色

wm_ctlcolorscrollbar 當乙個滾動條控制項將要被繪製時傳送此訊息給它的父視窗 通過響應這條訊息,所有者視窗可以通過使用給定的相關顯示裝置的控制代碼來設定滾動條的背景顏色

wm_ctlcolorstatic 當乙個靜態控制項將要被繪製時傳送此訊息給它的父視窗 通過響應這條訊息,所有者視窗可以 通過使用給定的相關顯示裝置的控制代碼來設定靜態控制項的文字和背景顏色

wm_mousefirst wm_mousemove 移動滑鼠

wm_lbuttondown 按下滑鼠左鍵

wm_lbuttonup 釋放滑鼠左鍵

wm_lbuttondblclk 雙擊滑鼠左鍵

wm_rbuttondown 按下滑鼠右鍵

wm_rbuttonup 釋放滑鼠右鍵

wm_rbuttondblclk 雙擊滑鼠右鍵

wm_mbuttondown 按下滑鼠中鍵

wm_mbuttonup 釋放滑鼠中鍵

wm_mbuttondblclk 雙擊滑鼠中鍵

wm_mousewheel 當滑鼠輪子轉動時傳送此訊息個當前有焦點的控制項

wm_parentnotify 當mdi子視窗被建立或被銷毀

,或使用者按了一下滑鼠鍵而游標在子視窗上時傳送此訊息給它的父視窗

wm_entermenuloop 傳送此訊息通知應用程式的

主視窗that已經進入了選單迴圈模式

wm_exitmenuloop 傳送此訊息通知應用程式的

主視窗that已退出了選單迴圈模式

wm_sizing 當使用者正在調整視窗大小時傳送此訊息給視窗 通過此訊息應用程式可以監視視窗大小和位置也可以修改他們

wm_capturechanged 傳送此訊息 給視窗當它失

去捕獲的滑鼠時

wm_moving 當使用者在移動視窗時傳送此訊息,通過此訊息應用程式可以監視視窗大小和位置也可以修改他們

wm_powerbroadcast 此訊息傳送給應用程式來通

SendMessage函式完全使用手冊 轉

sendmessage函式完全使用手冊 訊息在wm create訊息傳送前傳送 wm ncdestroy 此訊息通知某個視窗,非客戶區 正在銷毀 wm nccalcsize 當某個視窗的客戶區域必須被核 算時傳送此訊息 wm nchittest 移動滑鼠,按住或釋放滑鼠時發 生wm ncpaint ...

java求完數(完全數 完美數)

package com.face public class sumnum 求完數 完數的定義 乙個數恰好等於它的所有因子之和 public static void fun for int i 1 i 1000 i int factor 0 定義因子變數和,初始值0 for int j 1 j完全數 ...

包子湊數 完全揹包

小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包子來,使得這若干籠中恰好一共有x個包子。比如一共有3種蒸籠,分別能放3 4和5個包子。當顧客想買11個...