CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

cdc类使用!

楼主zhanshenpkl(LittlePK)2003-09-03 19:28:19 在 VC/MFC / 界面 提问

请问怎么使用cdc类,使之先在内存写文字或画线,然后再贴到程序的客户区? 问题点数:20、回复次数:7Top

1 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2003-09-03 19:38:19 得分 10

  CClientDC   dc(this);  
  CDC   *cdc1;  
  cdc1=new   CDC;//定义一暂存DC  
  CBitmap   *bmp1;  
  bmp1=new   CBitmap;//位图对象  
  cdc1->CreateCompatibleDC(&dc);//将cdc转化为与dc兼容的DC  
  //bmp1->m_hObject=(HBITMAP)::LoadImage(NULL,"D:\\application   example\\bmp1\\res\\fan.bmp",IMAGE_BITMAP,100,100,LR_LOADFROMFILE);  
  //.\\res\\fan.bmp表示文件路径名,100,100分别表示这个图片的宽和高  
   
  bmp1->LoadBitmap(IDB_BITMAP1);  
  cdc1->SelectObject(bmp1);//将位图放在暂存dc中  
  dc.BitBlt(30,30,100,100,cdc1,0,0,SRCCOPY);  
  /*将放在暂存DC中的位图贴于界面上,其中两个30表示贴图的左上角x,y坐标,100,100表示位图贴到目的地的宽和高,后面的0,0表示从位图的左上角x,y坐标开始贴*/  
  delete   cdc1;  
  delete   bmp1;  
  Cbmp1Doc*   pDoc   =   GetDocument();  
  ASSERT_VALID(pDoc);  
  if   (!pDoc)  
  return;Top

2 楼dawndu(东南飞)回复于 2003-09-03 21:29:53 得分 10

同意楼上的:  
  CClientDC   dc(this);  
  CDC   *cdc1;  
  cdc1=new   CDC;//定义一暂存DC  
  CBitmap   *bmp1;  
  bmp1=new   CBitmap;//位图对象  
  cdc1->CreateCompatibleDC(&dc);//将cdc转化为与dc兼容的DC  
  //bmp1->m_hObject=(HBITMAP)::LoadImage(NULL,"D:\\application   example\\bmp1\\res\\fan.bmp",IMAGE_BITMAP,100,100,LR_LOADFROMFILE);  
  //.\\res\\fan.bmp表示文件路径名,100,100分别表示这个图片的宽和高  
   
  bmp1->LoadBitmap(IDB_BITMAP1);  
  cdc1->SelectObject(bmp1);//将位图放在暂存dc中  
  ===================================================================  
  内存DC   有个位图表面后就可以在上面画线了  
                    cdc1->MoveTo(0,0);  
                    cdc1->LineTo(100,100);  
  ===================================================================  
  dc.BitBlt(30,30,100,100,cdc1,0,0,SRCCOPY);  
  /*将放在暂存DC中的位图贴于界面上,其中两个30表示贴图的左上角x,y坐标,100,100表示位图贴到目的地的宽和高,后面的0,0表示从位图的左上角x,y坐标开始贴*/  
  delete   cdc1;  
  delete   bmp1;  
  Cbmp1Doc*   pDoc   =   GetDocument();  
  ASSERT_VALID(pDoc);  
  if   (!pDoc)  
  return;  
  Top

3 楼atEleven(@十一)回复于 2003-09-03 21:33:30 得分 0

不同意楼上两位.  
   
  位图数据在重复Top

4 楼atEleven(@十一)回复于 2003-09-03 21:34:34 得分 0

倒!!  
   
  没写完就跳了.  
   
   
  位图数据不应该在WM_PAINT这样频繁使用的消息中重复LOAD.很典型的效率问题.Top

5 楼spbabyba(大背)回复于 2003-09-03 22:17:18 得分 0

BitBlt  
  StretchBltTop

6 楼zhanshenpkl(LittlePK)回复于 2003-09-04 10:15:22 得分 0

To;atEleven(@十一)  
  大哥有更好的方法请不吝赐教!Top

7 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2003-09-04 12:40:50 得分 0

大哥有更好的方法请不吝赐教!Top

相关问题

  • 在基于MFC的dll中怎样使用CDC类,
  • 怎么样使用CDC::TextOut()?
  • 使用CDC::TextOut()的问题
  • cview类的使用?
  • 怎样在CDC中使用透明色
  • 求助!关于CDC::BitBlt()的使用。
  • 请问在已经有了HBITMAP型的位图句柄后,如何使用CDC类得到其宽度和高度啊?
  • 如何正确使用类
  • 如何使用CFile类
  • 类声明的使用

关键词

  • dc
  • cdc
  • bmp
  • pdoc
  • 图
  • 表示

得分解答快速导航

  • 帖主:zhanshenpkl
  • fanqing
  • dawndu

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo