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

請問如何抓到另支程式的ComboBox

尚未結案
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-01 23:18:37 IP:203.70.xxx.xxx 未訂閱
請問要如何抓到另支程式ComboBox元件的items, 還有要怎麼用sendmessage,來讓ComboBox選取items裡的某一項?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-02 11:37:25 IP:218.163.xxx.xxx 未訂閱
gavinj123 你好: 1. 你可以運用 Win API , "EnumWindows" 與 "EnumChildWindows" 找出該 Combobox 的 Handle.(建議搜尋一下相關文章). 2. 對該 Window Handle 送 CB_SETCURSEL Message, 如: SendMessage(ComboBox1.Handle,CB_SETCURSEL,1,0); // 選定第二個 Item
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-02 12:01:04 IP:211.75.xxx.xxx 未訂閱
引言: gavinj123 你好: 1. 你可以運用 Win API , "EnumWindows" 與 "EnumChildWindows" 找出該 Combobox 的 Handle.(建議搜尋一下相關文章). 2. 對該 Window Handle 送 CB_SETCURSEL Message, 如: SendMessage(ComboBox1.Handle,CB_SETCURSEL,1,0); // 選定第二個 Item
Mickey大大,謝謝你, SendMessage(ComboBox1.Handle,CB_SETCURSEL,1,0); // 選定第二個 Item 解決了我第二個問題, 但是我第一個問題是,我打到了Combobox 的 Handle了,但我怎麼抓到他裡面Item的所有選項呢?因為我要先知道它有那些選項,才能知要我要選那一個。
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-02 12:51:50 IP:218.163.xxx.xxx 未訂閱
參考看看:
procedure TForm1.Button1Click(Sender: TObject);
var i , iCount, iLen:integer;
    iStr : array of char;
begin
  iCount := SendMessage(ComboBox1.Handle,CB_GETCOUNT,0,0);
  for i := 0 to iCount - 1 do begin
    iLen := SendMessage(ComboBox1.Handle,CB_GETLBTEXTLEN,i,0);
    SetLength(iStr,iLen);
    SendMessage(ComboBox1.Handle,CB_GETLBTEXT,i,Integer(iStr));
    Memo1.Lines.Add(String(iStr));
  end;
end;
發表人 - Mickey 於 2004/09/02 12:54:05
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-02 12:56:58 IP:211.75.xxx.xxx 未訂閱
Mickey大大,感謝您
系統時間:2024-06-29 15:20:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!