据我所知,Combobox包含两个组件:Edit和ListBox。如果我处理了编辑字段,我怎么能得到Combobox的句柄? 我试图使用GetWindow(MyHandle,GW_HWNDNEXT),其中MyHandle是我知道的Edit的句柄,但结果始终是0.有人有任何想法吗?
很多。
答案 0 :(得分:3)
“编辑”窗口是ComboBox窗口的子窗口:使用GetParent
。
答案 1 :(得分:1)
TCustomCombo
定义了ListHandle
和EditHandle
属性。它们具有受保护的可见性,但您可以通过子类化或使用标准技巧获取受保护的成员来获取它们:
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