MFC CComboxex图标更新问题

MFC CComboxex图标更新问题,mfc,ccombobox,Mfc,Ccombobox,我正在使用MFC中的CComboxex控件为浏览器应用程序实现一个地址框,其中显示地址和相关站点图标 根据以下链接:,调用iItem为-1的ccomboxex::SetItem将修改编辑控件中当前显示的项。下面是我用来 HICON hIcon=LoadIcon(....); //load the new icon from somewhere imagelist.Replace(1,hIcon); //replace the existing icon in the image

我正在使用MFC中的CComboxex控件为浏览器应用程序实现一个地址框,其中显示地址和相关站点图标

根据以下链接:,调用iItem为-1的ccomboxex::SetItem将修改编辑控件中当前显示的项。下面是我用来

HICON hIcon=LoadIcon(....);     //load the new icon from somewhere
imagelist.Replace(1,hIcon);     //replace the existing icon in the image list.
int nImage=1;

item.mask = CBEIF_IMAGE|CBEIF_SELECTEDIMAGE ;
item.iItem = -1;
item.iImage = nImage;
item.iSelectedImage = nImage;
SetItem(&item);
我发现在调用SetItem后,图标通常不会更新。设置新图标后,仍会显示上一个图标。请注意,图像索引从未更改。我只更新图像列表中的实际图标

有趣的是,我发现如果我使用鼠标在组合框内单击,然后在其他控件内单击,使组合框失去焦点,图标将更新。我可以通过编程实现,但我觉得这是一个很难解决的问题

除此之外,在组合框上调用Invalidate或RedrawWindow不会使新图标在不更新时显示


在此方面的任何经验或提示将不胜感激。非常感谢

也许你需要再打一次。

我曾经遇到过类似的问题。后来我发现原因是我创建CImageList时发现的

在我改变之后

m_pImgLst->Create(32,20,ILC_COLOR32,2,2);


直到收到
WM\u KILLFOCUS
的更新现象消失。但遗憾的是,这张照片不如以前漂亮了。

我试过了。它大部分时间都有效。但就专业而言,它仍然没有更新。如果我在组合中单击,然后单击其他地方,图标会更新。
m_pImgLst->Create(32,20,ILC_COLOR16,2,2);