CListCtrl插入图片占空位问题

CListCtrl在SetImageList之后第一列有空白图标占位置,我想把这个去掉。下列是添加图片的代码。
插入图的代码如下


    HBITMAP hBitmap;
    BITMAP bmp;
    CBitmap* pBitmap;
    pBitmap = new CBitmap;

    hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), FilePathName1, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    pBitmap->Attach(hBitmap);
    m_ImageList.Add(pBitmap, RGB(0, 0, 0));

    hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), FilePathName2, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    pBitmap->Attach(hBitmap);
    m_ImageList.Add(pBitmap, RGB(0, 0, 0));

    //将ImageList设置到ListCtrl中
    m_listCtrl.SetImageList(&m_ImageList, LVSIL_SMALL);

添加的代码如下

LV_ITEM lvitem;
                memset((char*)&lvitem, '\0', sizeof(LV_ITEM));
                lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;//| LVIF_INDENT仅对第0列有效;
                lvitem.iItem = i; lvitem.iSubItem = 0;

我是自己重绘了表格的,重绘图片的代码如下。

void CAAMyListCtrl::DrawImage(CDC* pDC, CPoint Pt, int width, int height, int nItem)
{
    LVITEM Lv = { LVIF_IMAGE };//指明获取什么类型的数据
    Lv.iItem = nItem;//指明获取第几行的图标
    GetItem(&Lv);
    CImageList* pImgList = GetImageList(LVSIL_SMALL);
    if (pImgList != NULL)
    {
        //ImageList_SetIconSize(pImgList->m_hImageList,27, 27);
        int cx = 0;
        int cy = 0;
        ImageList_GetIconSize(pImgList->GetSafeHandle(), &cx, &cy);//图片尺寸
        if (width >= cx && height >= cy)//单元格大于图片时,设置图片居中,其余靠单元格左上角
        {
            int iSubW = (width - cx) / 2;
            int iSubH = (height - cy) / 2;
            iSubW = Pt.x + iSubW;
            iSubH = Pt.y + iSubH;
            Pt.x = iSubW;
            Pt.y = iSubH;
            //CListCtrl坐标原点为列表左上角,x向右,y向下
        }
        pImgList->Draw(pDC, Lv.iImage, Pt, ILD_TRANSPARENT);
    }
}

有尝试在重绘的时候修改尺寸,但是这样显示不出来图片。总结我的需求:去掉第一列的空白图片占位。麻烦有明白的朋友帮帮忙,感谢了。


void CAAMyListCtrl::DrawImage(CDC* pDC, CPoint Pt, int width, int height, int nItem)
{
    // 判断是否是第一列
    if (Pt.x == 0)
        return;

    LVITEM Lv = { LVIF_IMAGE };//指明获取什么类型的数据
    Lv.iItem = nItem;//指明获取第几行的图标
    GetItem(&Lv);
    CImageList* pImgList = GetImageList(LVSIL_SMALL);
    if (pImgList != NULL)
    {
        //ImageList_SetIconSize(pImgList->m_hImageList,27, 27);
        int cx = 0;
        int cy = 0;
        ImageList_GetIconSize(pImgList->GetSafeHandle(), &cx, &cy);//图片尺寸
        if (width >= cx && height >= cy)//单元格大于图片时,设置图片居中,其余靠单元格左上角
        {
            int iSubW = (width - cx) / 2;
            int iSubH = (height - cy) / 2;
            iSubW = Pt.x + iSubW;
            iSubH = Pt.y + iSubH;
            Pt.x = iSubW;
            Pt.y = iSubH;
            //CListCtrl坐标原点为列表左上角,x向右,y向下
        }
        pImgList->Draw(pDC, Lv.iImage, Pt, ILD_TRANSPARENT);
    }
}