这回请一定要帮我(关于ComboBoxEx32),我很着急...
Lin 2000-05-21 06:41:00 Delphi自带的TComboBox没有ImageList属性,因此我在Form的OnCreate事件中自己创建了一个类名为ComboBoxEx32(Windows标准控件)的控件:
...
InitCtrls.dwSize := SizeOf(TInitCommonControlsEx);
InitCtrls.dwICC := ICC_WIN95_CLASSES or ICC_USEREX_CLASSES or ICC_COOL_CLASSES;
InitCommonControlsEx(InitCtrls);
wnd := CreateWindowEx(WS_EX_TRANSPARENT, WC_COMBOBOXEX, WC_COMBOBOXEX,
CBS_DROPDOWNLIST or CBS_SORT or WS_VSCROLL or
WS_TABSTOP or WS_VISIBLE or WS_CHILD, 98, 10,
181, 200, Handle, 0, hInstance, nil);
if wnd <> 0 then
SendMessage(wnd, CBEM_SETIMAGELIST, 0, ImgList.Handle);
...
随后,向wnd填充了项目:
var cbei: TComboBoxExItem;
nLoop: Integer;
...
cbei.mask := CBEIF_IMAGE or CBEIF_TEXT or CBEIF_INDENT or CBEIF_SELECTEDIMAGE;
with tvNethood do
for nLoop := 0 to Items.Count - 1 do
begin
cbei.iItem := nLoop;
cbei.pszText := PChar(Items[nLoop].Text);
cbei.iImage := Items[nLoop].ImageIndex;
cbei.iOverlay := cbei.iImage;
cbei.iSelectedImage := cbei.iImage;
cbei.iIndent := Items[nLoop].Level * 2;
SendMessage(wnd, CBEM_INSERTITEM, 0, LPARAM(@cbei));
end;
...
但奇怪的是wnd里面什么也没有!这是怎么回事啊?各位大虾请帮帮我。