社区
图形处理/算法
帖子详情
TransparentBlt位图透明
shuijingzi00
2010-03-26 07:36:32
使用TransparentBlt函数,位图倒立显示,不只什么原因?
...全文
242
25
打赏
收藏
TransparentBlt位图透明
使用TransparentBlt函数,位图倒立显示,不只什么原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shuijingzi00
2010-03-29
打赏
举报
回复
TransparentBlt函数是不是不支持目标高度为负呀?
shuijingzi00
2010-03-26
打赏
举报
回复
在程序中找到这些语句:
pDC->SetMapMode(MM_LOMETRIC);
SetScrollSizes(MM_LOMETRIC, pDoc->m_viewsize,pDoc->m_sizePage,pDoc->m_sizeLine);
dcMetaFile.SetMapMode(MM_LOMETRIC);
pView->SetScrollSizes(MM_LOMETRIC, m_viewsize,m_sizePage,m_sizeLine);
如果现在都改成MM_TEXT,那整个软件程序会不会影响很大呀?
Eleven
2010-03-26
打赏
举报
回复
Debug下看看你的坐标对不对呢?
mike_zw
2010-03-26
打赏
举报
回复
pDC->BitBlt(x, y, 50, 50, &ImageDC, 0, 0, SRCCOPY);
x, y是不是在(50, 50)的右下方了?
快乐鹦鹉
2010-03-26
打赏
举报
回复
看一下pDC的源头在哪里,也就是这个DrawImage函数在哪里调用的。一直找到pDC的最终来源。看一下那里是否调整了映射模式,已经不是MM_TEXT了吧,其它映射模式都会把坐标系的Y轴倒立。
zhouzhixiangcn
2010-03-26
打赏
举报
回复
pDC->BitBlt(x, y, 50, 50, &ImageDC, 0, 0, SRCCOPY);
x, y是多少,检查一下
shuijingzi00
2010-03-26
打赏
举报
回复
void CColumn::DrawImage(CDC* pDC)
{
CDoc* pDoc;
CMainFrame* pMainFrame;
pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
pDoc=(CDoc*)pMainFrame->GetActiveDocument();
CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
CMDIChildWnd *pChild = (CMDIChildWnd *) pFrame->GetActiveFrame();
CView *pView = (CView *) pChild->GetActiveView();
CBitmap FootballBMP;
FootballBMP.LoadBitmap(IDB_BITMAP1);
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);
pDC->BitBlt(x, y, 50, 50, &ImageDC, 0, 0, SRCCOPY);
ImageDC.SelectObject(pOldImageBMP);
}
这是我测试写的简单函数,整个软件的代码非常多,网上有人说如倒立把BitBlt函数中的目标高度变为负值,我变了,可不显示了,是不是与我这个软件中的逻辑坐标轴设置有关系呀?
快乐鹦鹉
2010-03-26
打赏
举报
回复
那就见鬼了。你就这几行代码吗?能贴完整一点么。把整个函数贴出来。
shuijingzi00
2010-03-26
打赏
举报
回复
图片是正的!
shuijingzi00
2010-03-26
打赏
举报
回复
没有呀,刚学VC,这只是个练习的例子,那pDC应该设置成什么模式呀?
aa3000
2010-03-26
打赏
举报
回复
是图片本来就倒立是吧
快乐鹦鹉
2010-03-26
打赏
举报
回复
那是不是你修改了pDC的模式了啊???
shuijingzi00
2010-03-26
打赏
举报
回复
用BitBlt是倒立的
刚刚凉
2010-03-26
打赏
举报
回复
参数问题吧 好好检查输入 参数对不对
快乐鹦鹉
2010-03-26
打赏
举报
回复
你用BitBlt呢,看看是否是倒立的。
shuijingzi00
2010-03-26
打赏
举报
回复
CBitmap FootballBMP;
FootballBMP.LoadBitmap(IDB_BITMAP1);
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);
TransparentBlt(pDC->m_hDC, x, y, 50, 50, ImageDC.m_hDC, 0, 0, 50, 50, RGB(255,255,255));
ImageDC.SelectObject(pOldImageBMP);
快乐鹦鹉
2010-03-26
打赏
举报
回复
不知你怎么写的
shuijingzi00
2010-03-26
打赏
举报
回复
TransparentBlt我也试过了,不显示!
快乐鹦鹉
2010-03-26
打赏
举报
回复
BitBlt本来就没让你设置为负数。你不是用TransparentBlt么
shuijingzi00
2010-03-26
打赏
举报
回复
为什么BitBlt中目标高度为负不显示?
加载更多回复(5)
MFC实现的
位图
透明
显示(测试通过vs2005)
MFC框架下面的
位图
透明
显示技术。使用了
Transparent
Blt
()函数。
精选_使用
Transparent
Blt
函数实现绘制
透明
位图
_源码打包
使用
Transparent
Blt
函数实现绘制
透明
位图
Windows游戏编程系列之1:GUI窗口界面编程及游戏入门实战
位图
简介 38 1)在资源中添加
位图
资源 39 2)从资源中加载
位图
: LoadBitmap 39 3)创建一个与当前DC相匹配的DC(内存DC) 39 4)将bitmap放入匹配的DC中:SelectObject 40 5)成像(1:1 比例 ) 40 6)取出
位图
40...
Transparent
Test.rar_
Transparent
Blt
_
透明
图
包含
透明
色的
位图
的绘制方法有多种,最简单的方法是调用现成的函数:
Transparent
Blt
,也可以通过自己的代码实现类似
Transparent
Blt
的功能,实现过程也有两种形式,一种是事先做一张掩码
位图
,另一种是动态生成掩码...
vc 双缓冲方法实现
透明
位图
覆盖效果
vc环境,采用双缓冲方法,在缓冲区
位图
上画一个白色背景下的
位图
,利用vc自带函数
Transparent
Blt
,然后再用该
位图
透明
覆盖已经在对话框上存在的图形。
图形处理/算法
19,469
社区成员
50,697
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章