游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1174|回复: 0

如何?得ListControl的ImageList的Bitmap

[复制链接]

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
发表于 2006-1-27 13:21:00 | 显示全部楼层 |阅读模式
如何?得ListControl的ImageList的Bitmap
CSortListCtrl是?承ListControl的??e
我想?出ImageList中的一??Bitmap的?D形,要如何取得呢?
我用以下的方法不能成功,直接m_bitmap->m_hObject指定??_bitmaps是可以正常?出
m_bitmap->m_hObject=m_bitmaps[nimage];

PS: m_bitmaps[0].m_hObject = (HBITMAP):oadBitmap(::AfxGetInstanceHandle() ,MAKEINTRESOURCE(IDB_BITMAP3));



void CSortListCtrl:rawText(int nItem, int nSubItem, CDC *pDC, COLORREF crText, COLORREF crBkgnd, CRect &rect)
{
    ASSERT(pDC);
   
//    GetDrawColors(nItem, nSubItem, crText, crBkgnd);
   
    pDC->FillSolidRect(&rect, crBkgnd);
   
    CString str;
    str = GetItemText(nItem, nSubItem);
   
    if (!str.IsEmpty())
    {
        // get text justification
        HDITEM hditem;
        hditem.mask = HDI_FORMAT;
        m_ctlHeader.GetItem(nSubItem, &hditem);
        int nFmt = hditem.fmt & HDF_JUSTIFYMASK;
        UINT nFormat = DT_VCENTER | DT_SINGLELINE;
        if (nFmt == HDF_CENTER)
            nFormat |= DT_CENTER;
        else if (nFmt == HDF_LEFT)
            nFormat |= DT_LEFT;
        else
            nFormat |= DT_RIGHT;
            
        //icon
        
#define _TEST_ICON_IMAGE_
#ifdef _TEST_ICON_IMAGE_
        char cc[2];
        strmid(str.GetBuffer(0),cc,3,1);
        int nimage;
        nimage=atoi(cc);

        CDC* m_mdc=new CDC;
        
        m_mdc->CreateCompatibleDC(pDC);

#define _USE_IMAGELIST_
#ifdef _USE_IMAGELIST_
        CImageList* image_list;
        
        image_list=GetImageList(LVSIL_SMALL);
        IMAGEINFO ImageInfo;
        image_list->GetImageInfo(nimage,&ImageInfo);

        m_bitmap->m_hObject=ImageInfo.hbmImage;
#else
        //
        m_bitmap->m_hObject=m_bitmaps[nimage];
#endif//_USE_IMAGELIST_

        m_mdc->SelectObject(m_bitmap);

        BOOL bBlt=pDC->BitBlt(rect.left,rect.top,rect.left+15,rect.top+15,m_mdc,0,0,SRCCOPY);

        delete m_mdc;

        //text
        rect.OffsetRect(20,0);
        pDC->SetBkMode(TRANSPARENT);
        pDC->SetTextColor(crText);
        pDC->SetBkColor(crBkgnd);
        pDC->DrawText(str.GetBuffer(0)+3, &rect, nFormat);

#endif//_TEST_ICON_IMAGE_

    }

}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 08:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表