游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2982|回复: 3

TransparentBlt 如何使用

[复制链接]

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2009-5-16 19:18:00 | 显示全部楼层 |阅读模式
void Cgame1View::OnDraw(CDC* pDC)
{
        Cgame1Doc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);

        CBrush mybrush(RGB(255,100,0));
        CRect myrect(0,0,1300,800);
        pDC->FillRect(myrect,&mybrush);

        CDC myDC;
        CBitmap *bt;
        CRect rc;
        GetClientRect(&rc);
        myDC.CreateCompatibleDC(pDC);
        bt = myDC.SelectObject(&m_bitmap);
        //myDC.TransparentBlt(ixunhuan+100,100,200,200,pDC,100,100,200,200,RGB(255,255,255));
        ::TransparentBlt(pDC->m_hDC,ixunhuan+100,100,200,200,myDC.m_hDC,ixunhuan+100,100,200,200,RGB(255,255,255));
        pDC->BitBlt(ixunhuan+100,100,200,200,&myDC,0,0,SRCCOPY);
        myDC.SelectObject(bt);

        myDC.DeleteDC();
        if (!pDoc)
                return;

        // TODO: add draw code for native data here
}

bmp图片不透明 我很头疼 请帮忙 mfc

3

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2009-6-3 13:24:00 | 显示全部楼层

Re:TransparentBlt 如何使用

MSDN有说明

但我觉得,你的图可能是,256色的,,,,而256色索引,黑白两色的索引是没有的,所以图中找不到RGB(255,255,255),,(纯属推测)
还有,如果BMP是有损压缩,有些颜色是没有的,如(555,565),颜色值<=7时,会被截掉.

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-3-16 08:38:00 | 显示全部楼层

Re:TransparentBlt 如何使用

他需要一个库文件吧,可引入了?

3

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2010-3-23 15:20:00 | 显示全部楼层

Re:TransparentBlt 如何使用

去掉pDC->BitBlt(ixunhuan+100,100,200,200,&myDC,0,0,SRCCOPY);试试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-12 17:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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