CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

问个简单的问题:

楼主happygirl_05()2006-03-02 10:57:31 在 VC/MFC / 界面 提问

CDC  
  CPaintDC  
  CBitmap  
  这些是干什么的,有什么连带关系吗  
    我画图,是把图像画到哪了,(是不是CDC上?),然后我怎样将画的图放到我指定的控件(比如:静态文本框)上啊  
   
   
  我不知道我是否说明白了,感觉自己都没说明白,不过还是希望大家帮帮我啊 问题点数:100、回复次数:7Top

1 楼AlbortEinstein(爱因斯坦)回复于 2006-03-02 11:08:18 得分 40

CPaintDC   是继承自CDC  
  如果定义了CDC的对象  
  CDC   dcMem;  
  必须创建出来  
  dcMem.CreateCompatibleDC(NULL);  
  然后创建CBitmap对象  
  CBitmap   bmp;  
  bmp.CreateCompatibleBitmap(NULL,   0,   0);  
  把bmp选进DC,方可使用DC  
  dcMem.SelectObject(&bmp);  
  现在才可以使用DC去画Top

2 楼syy64(太平洋)回复于 2006-03-02 11:14:36 得分 20

CDC  
  CPaintDC  
  是绘图的类;  
  CBitmap  
  是处理位图的类。  
  Top

3 楼happygirl_05()回复于 2006-03-02 11:14:53 得分 0

CPaintDC   是继承自CDC  
  如果定义了CDC的对象  
  CDC   dcMem;  
  必须创建出来  
  dcMem.CreateCompatibleDC(NULL);  
  然后创建CBitmap对象  
  CBitmap   bmp;  
  bmp.CreateCompatibleBitmap(NULL,   0,   0);  
  把bmp选进DC,方可使用DC  
  dcMem.SelectObject(&bmp);  
  现在才可以使用DC去画  
   
  ------------------------------------------------------------------------------------  
  谢谢你  
   
  那么用DC去画,去画到哪了(是bmp吗)?  
  然后我想将图形显示在指定的控件上,应该怎么做?  
   
  Top

4 楼ouyh12345(五岭散人)回复于 2006-03-02 11:23:21 得分 0

画在dc的客户区  
   
  在指定的控件上画:重载控件,然后在DrowItem上画Top

5 楼ydfivy(我就是一送外卖的)回复于 2006-03-02 11:33:01 得分 30

如果你想画在CStatic控件上.可以用ouyh12345()   的方法.  
   
  然后在DrawItem这样做.  
  void   C3dTextButton::DrawItem(LPDRAWITEMSTRUCT   lpDrawItemStruct)    
  {  
  //   TODO:   Add   your   code   to   draw   the   specified   item  
  CDC*   pDC=CDC::FromHandle(lpDrawItemStruct->hDC);  
  ASSERT_VALID(pDC);  
  CRect   rectClient=lpDrawItemStruct->rcItem;  
  然后使用你得到的DC画图就可以了.  
  例如:  
          pDC->TextOut(...);  
  }  
  Top

6 楼YufengShi(浪子)回复于 2006-03-02 11:34:15 得分 10

dc是和窗口关联的,  
  用dc画图,  
  就会在关联的窗口上反映出来。Top

7 楼happygirl_05()回复于 2006-03-02 11:44:46 得分 0

如果你想画在CStatic控件上.可以用ouyh12345()   的方法.  
   
  然后在DrawItem这样做.  
  void   C3dTextButton::DrawItem(LPDRAWITEMSTRUCT   lpDrawItemStruct)    
  {  
  //   TODO:   Add   your   code   to   draw   the   specified   item  
  CDC*   pDC=CDC::FromHandle(lpDrawItemStruct->hDC);  
  ASSERT_VALID(pDC);  
  CRect   rectClient=lpDrawItemStruct->rcItem;  
  然后使用你得到的DC画图就可以了.  
  例如:  
          pDC->TextOut(...);  
  }  
   
   
  -----------------------------------------------------------------------------------  
  不应该用Bitblt()函数吗?  
  我看书上介绍,平移图形,好像可以用这个,但我没太看懂,不知道要平移到控件上,应该怎么做?  
  (我目前的思路是这个,没有考虑DrawItem(),要是用DrawItem()我恐怕还得从看相关知识)Top

相关问题

  • 问个简单for?
  • 2个简单问题
  • 问个简单的
  • 一个很简单简单的问题..........
  • 一个报表打印问题,简单,简单,确实简单.
  • 问一个简单问题
  • 问一个简单问题?
  • 问个简单的问题!
  • 问一个简单问题
  • 问个简单的问题

关键词

  • 控件
  • dc
  • null
  • lpdrawitemstruct
  • drawitem
  • cdc
  • 画图
  • bmp
  • cbitmap
  • dcmem

得分解答快速导航

  • 帖主:happygirl_05
  • AlbortEinstein
  • syy64
  • ydfivy
  • YufengShi

相关链接

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

广告也精彩

反馈

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