怎么得到其他程序中ComboBox的index,高分求助?(200分)

  • 主题发起人 主题发起人 小黄鱼
  • 开始时间 开始时间

小黄鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么得到其他程序中ComboBox的index,
我可以得到选定的标题,但是无法不知道如何得到他的index
请高手指点。
提前加分提前加分提前加分提前加分提前加分提前加分提前加分提前加分提前加分提前加分提前加分
 
先取得它的文本
然后用CB_GETCOUNT、CB_GETLBTEXT一个个取,看是哪个符合
Index自然就出来了。
 
代码如下: [:)]
代码:
procedure TForm1.Button1Click(Sender: TObject);
var
  Hwnd: THandle;
  Text, S: string;
  Count, I: Integer;
begin
  Hwnd := StrToInt(Edit1.Text);

  SetLength(S, 255);
  SetLength(S, SendMessage(Hwnd, WM_GETTEXT, Length(S), Longint(S)));
  Text := S;

  Count := SendMessage(Hwnd, CB_GETCOUNT, 0, 0);
  for I := 0 to Count - 1 do
  begin
    SetLength(S, 255);
    SetLength(S, SendMessage(Hwnd, CB_GETLBTEXT, I, Integer(Pointer(S))));
    if S = Text then
    begin
      Caption := Format('Text: %s Index: %d', [S, I]);
      Break;
    end;
  end;
end;
 
谢谢你的回答,重要的是哪个combox中又重复的项,我必须知道他的index.用text,好像不行
 
不好意思, 是我走弯路了
Windows有相关的消息:
Caption := IntToStr(SendMessage(hComboBoxHandle, CB_GETCURSEL, 0, 0));
 
上面的完全正确。
检查一下返回值。
 
找了一下才找到的,这个名字太不形象了 [:)]
返回值没有问题,你的ComboBox没选中Item的话就直接返回-1了
 
谢谢,不知道大虾是怎么找到的???????
 
接受答案了.
 
打开MSDN,查找ComboBox相关的消息 [:)]
 

Similar threads

回复
0
查看
804
不得闲
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部