<1>给控件 CComboBox绑定变量
.cpp中

DDX_Control(pDX, IDC_COMBO_PHOTO_IMG, m_ComboBoxPhotoImg);
 CComboBoxEx m_ComboBoxPhotoImg;	//用户图像

<2>

.cpp中

//创建图像列表
m_imageList.Create(32, 32, ILC_COLOR16, 4, 4);
for(int i = 0; i < 10; i++)
{
m_imageList.Add(::LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1+i)));//向图像列表添加图标ico
} m_ComboBoxPhotoImg.SetImageList(&m_imageList); //为列表框设置图像列表
int numImgInList = m_imageList.GetImageCount();
for(int i=0; i<numImgInList; i++)
{
COMBOBOXEXITEM cbi ={0};
cbi.mask = CBEIF_IMAGE | CBEIF_INDENT | CBEIF_OVERLAY |
CBEIF_SELECTEDIMAGE | CBEIF_TEXT; cbi.iItem = i;
CString str;
str.Format(_T("Numb %2d"), i+1);
cbi.pszText = /*(LPTSTR)(LPCTSTR)*/str.GetBuffer();
cbi.cchTextMax = str.GetLength();
cbi.iImage = i;
cbi.iSelectedImage = i;
cbi.iOverlay = 2;
cbi.iIndent = 0;
int nItem = m_ComboBoxPhotoImg.InsertItem(&cbi); //为组合框添加新项目
ASSERT(nItem == i);
} m_ComboBoxPhotoImg.SetCurSel(0);

上述代码中ASSERT断言总出错,并且nItem总返回为0

检查结果:由于<1>项绑定的控件为CComboBox控件,即资源对话框上拖放的控件是CComboBox控件,所以断言总出错。

改正方法:把CComboBox控件改为Extended
ComboBox控件

05-11 17:43