扩展组合框(Extended Combo Box),做了之后怎么没有办法下拉呢?
我就是在一个对话框中加上一个扩展组合框(其ID号为:IDC_COLORCOMBO),在扩展组合框下拉的时候希望出现对应红,蓝,黄,绿,黑五色的5个Icon,
我觉得就是在CColorComboDlg类(工程名为:ColorCombo)里面的OnInitDialog函数下面添加加载的代码就够了吧?(我之前已经将对应红,蓝,黄,绿,黑五色的Icon1~Icon5 insert到工程中来了)
在OnInitDialog函数中我加了如下的代码:
......
// TODO: Add extra initialization here
//定义列表视图与扩展组合框中显示的文字信息
char* Colors[] = {
"红色","蓝色","黄色",
"绿色","黑色"};
int nColors = 5;
//创建一个新的图像列表,设置每幅图像的大小为16*16
m_imageList.Create(16,16,ILC_COLOR,0,0);
//载入图标资源
HICON hIcon=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));
//为图像列表添加图标
m_imageList.Add(hIcon);
hIcon=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2));
m_imageList.Add(hIcon);
hIcon=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3));
m_imageList.Add(hIcon);
hIcon=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON4));
m_imageList.Add(hIcon);
hIcon=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON5));
m_imageList.Add(hIcon);
//为扩展组合框控件设置图像列表
m_ColorCombo.SetImageList(&m_imageList);
//设置扩展组合框项目信息中的有效位
COMBOBOXEXITEM cbItem;
cbItem.mask = CBEIF_TEXT|CBEIF_IMAGE|CBEIF_SELECTEDIMAGE;
//在扩展组合框中插入六个项目信息
for(int i = 0; i < nColors; i++)
{
cbItem.pszText = Colors[i];
cbItem.iItem = i;
cbItem.iImage = cbItem.iSelectedImage =i;
m_ColorCombo.InsertItem(&cbItem);
}
return TRUE; // 除非设置了控件的焦点,否则返回 TRUE
....
感觉这样就是对了的啊?
我编译的时候也没有报错,但是在运行的时候,出来的对话框,点击扩展组合框的时候组合框就是不下拉。
是不是其它地方也要添加代码的?
各位大哥大姐帮小弟一把,万谢万谢!