本人刚学VC++问个关于在窗口显示一副位图的问题。

麻烦大家给我讲讲CreateCompatibleDC()CreateCompatibleBitmapSelectObject()BitBlt()这几个函数之间的逻辑关系,... 麻烦大家给我讲讲
CreateCompatibleDC()
CreateCompatibleBitmap
SelectObject()
BitBlt()
这几个函数之间的逻辑关系,各实现什么功能,不用太详细,关键理清他们之间的关系,最后给个结论 到底哪一个才是显示位图的最终函数?谢谢啊,本人菜鸟,研究了很久MSDN结果头都大了还是没理清个头绪出来!
哪一个参数是决定位图贴出来在窗口的哪一个位置?谢谢
展开
 我来答
百度网友1e944cd
2009-09-28 · TA获得超过989个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:317万
展开全部
CreateCompatibleDC()在内存中创建一个兼容DC
CreateCompatibleBitmap()创建一幅与兼容DC关联的位图
SelectObject()将位图选入兼容DC中
BitBlt()将位图显示出来

最后一个函数是最终显示位图的函数

BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );
前两个参数决定贴出来的位图在窗口中左上角的坐标
北风微风
2009-09-27 · TA获得超过1094个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:0
展开全部
CPaintDC dc(this); //获取当前显示DC

CDC* mdc = new CDC;
mdc->CreateCompatibleDC(&dc); //创建与显示DC兼容的内存DC
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc, width, height); //创建一个与显示DC兼容的位图
bitmap.Attach(hbitmap); //把位图附加到CBitmap对象
mdc->SelectObject(&bitmap); //选取位图,也可以选取其他的GDI对象,进行画图
dc.BitBlt(0, 0, rect.Width(), rect.Height(), mdc, 0, 0, SRCCOPY); //把位图由内存DC拷贝到现实DC进行显示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
I_AMHOPE
2009-09-27
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
最终是BitBlt()来显示,CreateCompatibleDC()建立适当的设备环境(显示位图的设备,可理解为显示屏),SelectObject()将位图选入设备中。此时,用BitBlt()将图先是在屏幕上就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式