Delphi:我如何获得TComboBox组件的句柄?

时间:2010-12-09 12:59:55

标签: delphi combobox handle

据我所知,Combobox包含两个组件:Edit和ListBox。如果我处理了编辑字段,我怎么能得到Combobox的句柄? 我试图使用GetWindow(MyHandle,GW_HWNDNEXT),其中MyHandle是我知道的Edit的句柄,但结果始终是0.有人有任何想法吗?

很多。

3 个答案:

答案 0 :(得分:3)

“编辑”窗口是ComboBox窗口的子窗口:使用GetParent

答案 1 :(得分:1)

TCustomCombo定义了ListHandleEditHandle属性。它们具有受保护的可见性,但您可以通过子类化或使用标准技巧获取受保护的成员来获取它们:

type
  TCheatComboBox = class(TComboBox);

function GetListHandle(Combo: TComboBox): HWND;
begin
  Result := TCheatComboBox(Combo).ListHandle;
end;

答案 2 :(得分:0)

你是如何得到编辑的句柄的?如果您执行Combobox1.Handle,则会获得COMBOBOX类窗口的句柄。

阅读http://msdn.microsoft.com/en-us/library/bb775792(VS.85).aspx