代码之家  ›  专栏  ›  技术社区  ›  sorin

是否可以创建具有alpha混合透明度的cimagelist?

  •  5
  • sorin  · 技术社区  · 16 年前

    如果可以创建一个带有alpha混合透明度的cimagelist,我想知道。

    创建透明性差(没有alpha混合)的cimagelist的示例代码

    CGdiPlusBitmapResource m_pBitmap;
    m_pBitmap.Load(IDB_RIBBON_FILESMALL,_T("PNG"),AfxGetResourceHandle());
    
    HBITMAP hBitmap;
    m_pBitmap.m_pBitmap->GetHBITMAP(RGB(0,0,0),&hBitmap );
    
    CImageList *pList=new CImageList;
    CBitmap bm;
    bm.Attach(hBitmap);
    pList->Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 4);
    pList->Add(&bm, RGB(255,0,255));
    
    1 回复  |  直到 10 年前
        1
  •  4
  •   Gutblender    10 年前

    不要使用 ILC_MASK 标志(来自 MSDN ):

    使用32位抗锯齿图标

    Windows XP映像列表,它们是 与一起使用的图像集合 某些控件,如列表视图 控件,支持使用32位 抗锯齿图标和位图。颜色 值使用24位,8位是 用作图标上的alpha通道。 创建可以处理 每像素32位(bpp)图像,调用 这个 ImageList_Create 函数传递 在一个 ILC_COLOR32 旗帜。

    推荐文章