首页新闻找找看学习计划

MFC 透明贴图背景变成白色

0
悬赏园豆:10 [已解决问题] 解决于 2013-04-14 14:42

我用CImage给按钮贴了一张图片

这个图片是又上到下的一个透明
CImage绘制出来怎么变成背景全部是白色的了


我用TransparentBlt这个方法实现不了


在网上看到加入这段代码可以实现透明  我加上去还是一样

 

for(int i = 0; i < m_BkImage.GetWidth(); ++i)
    {
        for(int j = 0; j < m_BkImage.GetHeight(); ++j)
        {
            unsigned char* pucColor = (unsigned char*)m_BkImage.GetPixelAddress(i , j);
            pucColor[0] = pucColor[0] * pucColor[3] / 255;
            pucColor[1] = pucColor[1] * pucColor[3] / 255;
            pucColor[2] = pucColor[2] * pucColor[3] / 255;
        }
    }
    m_BkImage.AlphaBlend(pdc->m_hDC, 0, 0); 

求可以实习透明的方法 多谢!!             

问题补充:

现在的效果是这样

我的贴图代码

    pdc->SetBkMode(TRANSPARENT);
    BOOL flag = m_BkImage->Draw(
        pdc->GetSafeHdc(),
        0,
        0,
        m_Width,
        m_Height,
        m_Width * nIndex,
        0,
        m_Width,
        m_Height
    );
    if (!flag)
    {
        MessageBox("绘制失败");
        return;
    }
    
    pdc->SetTextColor(m_TextColor);
    CString strTemp;
    GetWindowText(strTemp);    

    
    pdc->DrawText(strTemp,m_rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
山鹰-Chian的主页 山鹰-Chian | 初学一级 | 园豆:4
提问于:2013-01-07 22:12
< >
分享
最佳答案
0

你得在父窗口中重载 OnCtlColor ,然后返回一个 NULL 的 Brush。

收获园豆:10
Launcher | 高人七级 |园豆:45040 | 2013-01-08 09:27

不明白 可以說具体点吗 我是菜鸟 多谢

山鹰-Chian | 园豆:4 (初学一级) | 2013-01-08 09:31
其他回答(2)
0

照每天快照更新都是建设中,如何修改求解答求帮助 急急急 qq  306011691

 

帮忙提个问题把   自己提交不了

sxgryy | 园豆:202 (菜鸟二级) | 2013-01-08 17:30
0

你先看看图片本身背景是否透明吧

Jingle Guo | 园豆:123 (初学一级) | 2013-03-25 09:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册