線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1458
推到 Plurk!
推到 Facebook!

修改自dllee大大的GetWinAndSubWin2程式(Delphi 7 版本,含Src )

 
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-15 14:30:07 IP:210.200.xxx.xxx 未訂閱
如題.      回饋給所有KTop上的 Delphi User!!      重要技巧提示: 將VCL元件位址轉為字串後,再行復原為VCL元件      var str:string;          mm:TComboBox;       begin        str := Format('$%p',[@ComboBox1]);//將VCL元件指標(Pointer)轉為 字串!!        aa  := Ptr(StrToInt64(str)); //將位址字串轉為指標        mm  := TComboBox(aa^);       //將指標所指向的值,還原為VCL元件        mm.Items.Add('123');      end;    參考圖形如下: G01
corey
一般會員


發表:34
回覆:44
積分:14
註冊:2003-04-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-15 17:34:54 IP:211.78.xxx.xxx 未訂閱
請問一個初學者的問題 EnumWindows(@EnumWindowsCallBack,StrToInt64(str)); 上述EnumWindowsCallBack函數如何實現callback 謝謝指教
corey
一般會員


發表:34
回覆:44
積分:14
註冊:2003-04-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-15 17:45:13 IP:211.78.xxx.xxx 未訂閱
引言: 請問一個初學者的問題 EnumWindows(@EnumWindowsCallBack,StrToInt64(str)); 上述EnumWindowsCallBack函數如何實現callback 謝謝指教
不好意思找到了(msdn) EnumWindows The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window, in turn, to an application-defined callback function. EnumWindows continues until the last top-level window is enumerated or the callback function returns FALSE. BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // pointer to callback function LPARAM lParam // application-defined value ); Parameters lpEnumFunc Pointer to an application-defined callback function. For more information, see EnumWindowsProc. lParam Specifies an application-defined value to be passed to the callback function.
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-17 05:38:30 IP:61.64.xxx.xxx 未訂閱
To Corey: >>>EnumWindows(@EnumWindowsCallBack,StrToInt64(str)); >>>BOOL EnumWindows( >>>WNDENUMPROC lpEnumFunc, // pointer to callback function >>>LPARAM lParam // application-defined value); 說明EnumWindows( ) 1.第一個參數為: CallBack函式的位址-->@EnumWindowsCallBack 2.第二個參數為: LParam--->意思是說,允許程式設計人員自行針對 這個參數進行Define!! 在這個程式我們是要帶入 VCL Component進行處理,但是LParam屬於整數類別 所以我們才會使用以下技巧 --->將VCL元件位址轉為字串後,再轉為一整數型態 帶入LParam參數,然後在EnumWindowsCallBack 函式中再行復原為VCL元件 附帶要說明的是 在Delphi中,與Win32 Api的應用上;只要是函式是屬於CallBack函式 在定義函式時,要加上對於該函式的呼叫慣例為Win32Api的呼叫慣例 ---> stdcall G01
系統時間:2024-06-16 23:44:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!