GetCursorPos/WindowFromPoint/SendMessage (用API函數向Edit框發送字元)
GetCursorPos(mPoint); DTWND:=WindowFromPoint(mPoint); SendMessage(dtwnd, WM_IME_CHAR,ord('A'),1); 以上用到的三個函數介紹: GetCursorPos: 函數功能:該函數檢取游標的位置,以螢幕座標表示。 函數原型:BOOL GetCursorPos(LPPOlNT IpPoint); 參數: IpPint:POINT結構指標,該結構接收游標的螢幕座標。 傳回值:如果成功,傳回值非零;如果失敗,傳回值為零。若想獲得更多錯誤資訊,請調用GetLastError函數。 備忘:游標的位置通常以螢幕座標的形式給出,它並不受包含該游標的視窗的映射模式的影響。該調用過程必須具有對視窗站的WINSTA_READATTRIBUTES存取權限。 速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:不支援;標頭檔:winuser.h;庫檔案:user32.lib。 -------------------------------------------------------------------- WindowFromPoint: 函數功能:該函數獲得包含指定點的視窗的控制代碼。 函數原型:HWND WindowFromPoint(POINT Point); 參數: Point:指定一個被檢測的點的POINT結構。 傳回值S:傳回值為包含該點的視窗的控制代碼。如果包含指定點的視窗不存在,傳回值為NULL。如果該點在靜態文本控制之上,傳回值是在該靜態文本控制的下面的視窗。 備忘:WindowFromPoint函數不擷取隱藏或禁止的視窗控制代碼,即使點在該視窗內。應用程式應該使用ChildWindowFromPoint函數進行無限制查詢。 速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows CE:1.0以上版本:標頭檔:Winuser.h;庫檔案:user32.lib。 _____________________________________________________________________ SendMessage: |
函數功能:該函數將指定的訊息發送到一個或多個視窗。此函數為指定的視窗調用視窗程序,直到視窗程序處理完訊息再返回。而函數PostMessage不同,將一個訊息寄送到一個線程的訊息佇列後立即返回。
函數原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
參數:
hWnd:其視窗程序將接收訊息的視窗的控制代碼。如果此參數為HWND_BROADCAST,則訊息將被發送到系統中所有頂層視窗,包括無效或不可見的非自身擁有的視窗、被覆蓋的視窗和彈出式視窗,但訊息不被發送到子視窗。
Msg:指定被發送的訊息。
wParam:指定附加的訊息指定資訊。
IParam:指定附加的訊息指定資訊。
傳回值:傳回值指定訊息處理的結果,依賴於所發送的訊息。
備忘:需要用HWND_BROADCAST通訊的應用程式應當使用函數RegisterWindowMessage來為應用程式間的通訊取得一個唯一的訊息。
如果指定的視窗是由調用線程建立的,則視窗程序立即作為子程式調用。如果指定的視窗是由不同線程建立的,則系統切換到該線程並調用恰當的視窗程序。線程間的訊息只有線上程執行訊息檢索代碼時才被處理。發送線程被阻塞直到接收線程處理完訊息為止。