| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:有一个函数不知道怎么用啊这到底是什么意思?
只看楼主 加入收藏
NBABOY
Rank: 4
等 级:业余侠客
威 望:4
帖 子:129
专家分:281
注 册:2013-5-2
结帖率:61.9%
收藏
已结贴  问题点数:50 回复次数:4 
有一个函数不知道怎么用啊这到底是什么意思?
BitBlt(mdc,x,y,60,60,bufdc,60,0,SCRAND),我希望能说清一点。也就是说,从原始设备到目标设备之后的,屏幕显示,还有其他的一些,状态,嗯,云里雾里的,不明白,希望你能让我明白这个函数的意思。谢谢,
还有SCRPAINT的作用,请不要用网上的那种官方的话回应我我要的是直白的直接的。
搜索更多相关主题的帖子: 网上 
2014-05-01 20:10
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:17 
首先,你的先了解下绘图的基础才行。

每个要显示的windows窗口都有个内存dc(也就是上面说的设备)的。不过dc 不一定对应这一个窗口,比如内存dc(常用与双缓存,解决闪烁问题)。

打个比喻,如果你想在一个窗口上面绘图,你就的先获取到改窗口的dc(可以通过窗口句柄获取到)。获取到该dc 后,你就可以在这个dc上通过gdi 那套函数来对改dc进行绘图了,不过一般不会这样做,因为如果有大量绘图操作的时候,就会出现闪烁了。

所以一般都用双缓冲的做法了。也就是先创建一个内存dc,先把图像绘制到该内存dc中,然后,再把通过BitBlt把信息绘图进窗口dc(上一段红色提到的)。这样就很好的解决闪烁问题了。

至于BitBlt的各个函数,其实没有什么好说的,如果你觉得官网的看不懂,那就得打好英语基础了。

你上面的用法就是把bufdc 上面的内容绘图进mdc内,如果mdc 是一个窗口dc,那么就能够显示出来了。

你用了SCRAND,也就“Combines the colors of the source and destination rectangles by using the Boolean AND operator.”。颜色and操作,也就是源和目标的颜色值进行and 操作,绘图进目标dc(比如源颜色#00ff00,目标#112233,那么结果是0x00ff00 & 0x112233=0x002200)。常用的是SRCCOPY 直接拷贝。

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-05-05 20:27
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:17 
gdi+

仰望星空...........不忘初心!
2014-05-07 14:27
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
他应该是刚学不久,你讲双缓冲估计他听不懂~~

仰望星空...........不忘初心!
2014-05-07 14:30
ylyy20121
Rank: 2
等 级:论坛游民
帖 子:5
专家分:27
注 册:2013-8-26
收藏
得分:17 
学习了,二楼讲的很通俗!
2014-05-09 08:52
快速回复:有一个函数不知道怎么用啊这到底是什么意思?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023494 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved