求代码解答,超级容易的

白云抱幽幽 2010-11-09 05:27:17
void CView::RenderToBitmap(CBitmap &bitmap)
{
bitmap.DeleteObject();

UpdateWindow();

CRect rcClient;
GetClientRect(rcClient);
int nWidth = rcClient.Width();
int nHeight = rcClient.Height();

CClientDC dcClient(this);
CDC *pDC = &dcClient;

CDC dc;
dc.CreateCompatibleDC(pDC);

CBitmap *pOldBitmap;
bitmap.CreateCompatibleBitmap(pDC, nWidth, nHeight);
pOldBitmap = (CBitmap*)dc.SelectObject(&bitmap);

dc.BitBlt(0, 0, nWidth, nHeight, pDC, 0, 0, SRCCOPY);
dc.SelectObject(pOldBitmap);
}

本人是一个超级菜鸟,前辈写了这样的代码,但是我怎么也看不懂,有没有高手给我逐行解释一下的,我将飚泪送分,谢谢
...全文
97 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪岢奇 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 xinmiao97 的回复:]
C/C++ code
void CView::RenderToBitmap(CBitmap &bitmap)
{
bitmap.DeleteObject();

UpdateWindow();

CRect rcClient;
GetClientRect(rcClient);
int nWidth = rcClien……
[/Quote]

逐行解释啊,还不如你自己去看书好,解释了,你也听不懂
psbeond 2010-12-02
  • 打赏
  • 举报
回复
代码风格不太好。不建议你效仿。
向立天 2010-12-02
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖

相关规定详见界面界面版关于版主结帖工作的具体办法
mayudong1 2010-11-09
  • 打赏
  • 举报
回复
函数功能就是把一副图片贴到客户区,图片由CBitmap保存

这已经是最基本的知识了吧
蒙飞鸿 2010-11-09
  • 打赏
  • 举报
回复
void CView::RenderToBitmap(CBitmap &bitmap) //这是一个无返回值的函数,传引用
{
bitmap.DeleteObject(); //调用传引用进来的对象的一个成员函数 UpdateWindow(); //刷新本窗口

CRect rcClient; //生成一个CRect类的对象以获取下一句的返回GetClientRect(rcClient); //获取客户区尺寸,尺寸这个时候在rcClient里
int nWidth = rcClient.Width(); //提取宽
int nHeight = rcClient.Height(); //提取高

CClientDC dcClient(this); //生成一个CClientDC类对象
CDC *pDC = &dcClient; //“映射”到一个CDC类对象

CDC dc;
dc.CreateCompatibleDC(pDC); //创建CDC类对象,主要是为了后面的画面处理

CBitmap *pOldBitmap; //CBitmap是一个位图类,这里准备保存旧位图
bitmap.CreateCompatibleBitmap(pDC, nWidth, nHeight); //把之前的CDC“映射”到这个CBitmap
pOldBitmap = (CBitmap*)dc.SelectObject(&bitmap); //选入创建的位图

dc.BitBlt(0, 0, nWidth, nHeight, pDC, 0, 0, SRCCOPY); //画到具体DC,这个函数较常见 dc.SelectObject(pOldBitmap); //把旧位图还原
}



///////////////////////////////////////////////
大概意思是这样,有些可能不够准确。
lyingbo 2010-11-09
  • 打赏
  • 举报
回复
这个问题难度貌似太大了~~~
tufaqing 2010-11-09
  • 打赏
  • 举报
回复
你不会用MSDN吗?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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