CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

内存有关的操作

楼主chen_jun_fen(穷的只能抽白粉)2002-01-31 15:05:38 在 VC/MFC / 基础类 提问

请看下面的代码:  
  目的:  
  先把图片选到memdc里,然后在把memdc的图片copy到tmpdc里  
  然后再把tmpdc里的图片显示在picture控件上  
   
  碰到问题:显示不出来   ,不知道为什么   ?是否创建内存dc的时候不对,  
   
  此代码可以编译通过  
   
  HBITMAP   *hbp   ;  
  HDC   dc   =   m_b.GetDC()->m_hDC   ;     //m_b是picture控件的contro变量  
  HDC   memdc   ,   tmpdc   ;    
   
  hbp   =   (   HBITMAP   *)::LoadBitmap(   ::AfxGetInstanceHandle()   ,   MAKEINTRESOURCE(   IDB_BITMAP1   )   )   ;  
   
  memdc   =   ::CreateCompatibleDC(   dc   )   ;  
  tmpdc   =   ::CreateCompatibleDC(   dc     )   ;  
   
  BITMAP   BM   ;  
   
  ::GetObject(   hbp   ,   sizeof(   BM   )   ,   &BM   )   ;  
  ::SelectObject(   memdc   ,   hbp   )   ;  
   
  CRect   rect   ;  
   
  m_b.GetWindowRect(   &rect   )   ;  
   
  ::StretchBlt(   tmpdc   ,   0   ,   0   ,   rect.Width()   ,   rect.Height()   ,   memdc   ,   0   ,   0   ,   BM.bmWidth   ,   BM.bmHeight   ,   SRCCOPY   )   ;  
   
  ::BitBlt(   dc   ,   0   ,   0   ,   rect.Width()   ,   rect.Height()   ,   tmpdc   ,   0   ,   0   ,   SRCCOPY   )   ; 问题点数:30、回复次数:5Top

1 楼flounder(一肩挑尽万古愁)回复于 2002-01-31 15:13:16 得分 10

CDC   BmpDC;  
  BmpDC.m_hDC   =   CreateDC(_T("DISPLAY"),NULL,NULL,NULL);  
  CDC   memDC;  
  memDC.m_hDC   =   CreateCompatibleDC(BmpDC.m_hDC);  
  m_HBitmap=CreateCompatibleBitmap(BmpDC.m_hDC   ,   (m_structInfo.PaperWidth-2)*10,(m_structInfo.PaperHeight-2)*10/2+10);  
   
  SelectObject(memDC.m_hDC,hbp);  
   
  CRect   rect   ;  
   
  m_b.GetWindowRect(   &rect   )   ;  
   
  ::StretchBlt(   tmpdc   ,   0   ,   0   ,   rect.Width()   ,   rect.Height()   ,   memdc   ,   0   ,   0   ,   BM.bmWidth   ,   BM.bmHeight   ,   SRCCOPY   )   ;  
   
  ::BitBlt(   dc   ,   0   ,   0   ,   rect.Width()   ,   rect.Height()   ,   tmpdc   ,   0   ,   0   ,   SRCCOPY   )   ;  
  Top

2 楼chen_jun_fen(穷的只能抽白粉)回复于 2002-01-31 15:31:30 得分 0

to   flounder:  
    可以写详细点   吗  
  m_HBitmap=CreateCompatibleBitmap(BmpDC.m_hDC   ,   (m_structInfo.PaperWidth-2)*10,(m_structInfo.PaperHeight-2)*10/2+10);  
   
  这句话有什么用呢?  
  Top

3 楼chen_jun_fen(穷的只能抽白粉)回复于 2002-01-31 17:11:49 得分 0

up   ,up   Top

4 楼mjs2000(宁静致远)回复于 2002-02-01 13:00:43 得分 20

你先把   dc换成ClientDC如果能够显示出来则说名你的dc有问题Top

5 楼chen_jun_fen(穷的只能抽白粉)回复于 2002-02-08 08:49:07 得分 0

为什么还是不行阿   help   helpTop

相关问题

  • 有关内存映射文件操作
  • 有关内存管理,操作的问题(多进程共享的内存,...)
  • 请教一个有关内存操作的问题
  • 请教有关内存操作的问题,谢谢帮助!
  • 请教有关内存操作的问题,谢谢帮助!
  • 谁给我讲讲有关内存操作的问题!
  • 内存操作的问题。
  • 内存操作(高手进)
  • 关于内存操作的问题
  • 数据库操作内存不足?

关键词

  • dc
  • null
  • tmpdc
  • hbp
  • memdc
  • bmpdc
  • hdc
  • bm
  • rect
  • createcompatibledc

得分解答快速导航

  • 帖主:chen_jun_fen
  • flounder
  • mjs2000

相关链接

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

广告也精彩

反馈

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