全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:715
推到 Plurk!
推到 Facebook!

obtain all the components

尚未結案
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-06 22:09:41 IP:210.77.xxx.xxx 未訂閱
假如只知道一个窗体的handle(而不知到该窗体下有些有什元件),有什么API可得到这个窗体下所有的元体及其类型和名称?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-07 00:47:22 IP:61.221.xxx.xxx 未訂閱
Hi, 可以利用 EnumChildWindows 來進行取得所有的 childwindow, 再配合 GetClassName 來取得其 classname, 以下為大約的寫法.    在 var 段加入 callback function: function myEnumChildBack( h: HWND; v: integer ): Boolean; stdcall;    另外的程式如下:
function myEnumChildBack(h: HWND; v: integer): Boolean; stdcall; //callback function implementation
var
  cname: array[0..255] of char;
begin
  GetClassName(h, cname, 256);  // 由 handle 取得其 classname
  Form1.memo1.Lines.Add(inttostr(h) + '  ' + cname );
  result := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  a: HWND;
begin
  a := FindWindow(nil, 'my');  // 先找出你要找的 handle 或直接指定皆可
  if a <> 0 then
    EnumChildWindows(a, @myEnumChildBack, 0); // 開始找出所有該 windows 下的 childwindow
end;    
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-07 01:08:57 IP:210.77.xxx.xxx 未訂閱
我可能没说清楚,那个窗体是一个MDI子窗。我只知道这个子窗的handle,想知道这个子窗内到底有些什么元件。你的代码我试了,没反应。 發表人 - KFC 於 2003/04/07 01:11:59
系統時間:2024-05-03 8:10:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!