创建CListCtrl时出错

时间:2012-06-11 16:22:15

标签: image visual-c++ mfc clistctrl

我正在尝试在MFC中创建一个CListCtrl。 我正在制作CImageList。

BOOL CRadioButtonTestDlg::InitImageList() {
    mImageListNormal.Create(32, 32, ILC_COLOR32, 39, 1);
    CString filePath;
    CFileFind finder;
    CString strWildcard(_T("E:\\MyAssignments\\Window system programming\\MFC\\sample_programs\\VContact\\res\\contact_images\\*.jpg"));
    BOOL bWorking = finder.FindFile(strWildcard);
    while (bWorking) {
        bWorking = finder.FindNextFile();
        if (finder.IsDots())
            continue;
        filePath = finder.GetFilePath();
        CImage image;
        CBitmap bitmap;
        image.Load(filePath);
        bitmap.Attach(image.Detach());
        mImageListNormal.Add(&bitmap, RGB(255, 0, 255));
        bitmap.DeleteObject();
    }
    finder.Close();

    if(mAllContactListCtrl.SetImageList(&mImageListNormal, LVSIL_NORMAL) == NULL)
        AfxMessageBox(_T("Falied to set ImageList"));

    return TRUE;
}

调用mAllContactListCtrl.SetImageList()失败。

我想知道从CImage创建CBitmap是否正确或者我在其他地方做错了。

在输出中我只是获取字符串而不是图像。

=============================================== ==========================

我从InitDialog()

调用上面的函数
BOOL CRadioButtonTestDlg::OnInitDialog() {
    CDialog::OnInitDialog();

    CRect rect;
    mAllContactListCtrl.GetClientRect(&rect);
    mAllContactListCtrl.InsertColumn(0, _T("Name"), LVCFMT_LEFT, rect.Width()-15, 0);
    for (int i = 0; i < 39; i++) {
        mAllContactListCtrl.InsertItem(i, _T("Some String"), i);
    }
    InitImageList();

    return TRUE;
}

0 个答案:

没有答案