一个笔试题,个人不会抄下来了

fffanpei 2009-12-17 05:20:11
BOOL DrawBitMap(CDC *pDC, CBitmap *pBitmap, int nBmpWidth, int nBmpHeight)
使用双缓冲机制显示位图

这方面的没接触,谁会给个答案
...全文
237 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
岁月小龙 2009-12-18
  • 打赏
  • 举报
回复
7楼牛人
fffanpei 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zoulie 的回复:]
笔试还直接写这代码啊...
经常用的能写出大致框架
[/Quote]

那个地确实就出这个题了
俺不会 哈哈
huabinsir 2009-12-17
  • 打赏
  • 举报
回复
顶一下
子曰小玖 2009-12-17
  • 打赏
  • 举报
回复
7楼的厉害
zoulie 2009-12-17
  • 打赏
  • 举报
回复
笔试还直接写这代码啊...
经常用的能写出大致框架
ruifangcui7758 2009-12-17
  • 打赏
  • 举报
回复
heksn,说得对,就是那么实现,
sanguomi 2009-12-17
  • 打赏
  • 举报
回复
原来记得,现在好久不用了不记得了
tiantangxingkong 2009-12-17
  • 打赏
  • 举报
回复
楼上的这段代码估计与很多人都应用过了,上面的注释太眼熟了,我的工程里申请的DC及bitmap都是这段代码
  • 打赏
  • 举报
回复
CDC MemDC; //首先定义一个显示设备对象
Cbitmap MemBitmap; //定义一个位图对象
//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
//这时还不能绘图,因为没有地方画
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBitmap=MemDC.SelectObject(&MemBitmap);
//先用背景色将位图清除干净,这里我用的是白色作为背景
//你也可以用自己应该用的颜色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
//绘图
. . . . . .
. . . . . .
//将内存中的图拷贝到屏幕上进行显示
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();
zealand_1 2009-12-17
  • 打赏
  • 举报
回复
BOOL DrawBitMap(CDC *pDC, CBitmap *pBitmap, int nBmpWidth, int nBmpHeight)
{
pDC->CreateCompatibleDC(NULL);
pBitmap->CreateCompatibleBitmap(pDC, rt.Width(), rt.Height());
::SelectObject(pDC->GetSafeHdc(), pBitmap);
BitBlt(0, 0, nBmpWidth, nBmpHeight, pDC, 0, 0, SRCCOPY);
}

大致这样吧,可能有的地方用的不对。
luckyboy101 2009-12-17
  • 打赏
  • 举报
回复
比如说你要画是个苹果,如果不使用双缓冲的话,就是在屏幕上先画第一个,然后第二个,。。。直到画到第十个,那么你眼睛看到画面就有刷新,双缓冲就是你先把这是个苹果花在缓冲区上,最后整幅图显示在屏幕上
luckyboy101 2009-12-17
  • 打赏
  • 举报
回复
就是你先建立一个缓冲区CDC和CBITMAP,先把要画的图都画在CBITMAP上,最后才把CBITMAP图显示到显示器上
lover4ever 2009-12-17
  • 打赏
  • 举报
回复
cdc.bitblt
onlyliu 2009-12-17
  • 打赏
  • 举报
回复
建立一个 CBitmap指针。还有CDC * memDC 用memDC 画图。然后在 ONDRAW哪里直接把已经绘制得CBitmap指针调用出来显示。。。网上例程很多。。
aoyihuashao 2009-12-17
  • 打赏
  • 举报
回复
常听说,没写过。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧