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

CreateDIBitmap失败!!帮帮我啊~~

楼主Oversense(步步文)2003-05-03 06:12:25 在 VC/MFC / 图形处理/算法 提问

我要画一个dib   到win98的window上,老是失败  
  我在xp下用vc7.1写的程序,win_ver定义的都是98的  
  然后跑到98下去运行,结果CreateDIBitmap失败,返回0  
   
  m_hDc是用GetDC(m_hWnd)得到的,其中的m_hWnd是我自己用api弄的  
   
  WNDCLASS   wc;  
  ZeroMemory(&wc,   sizeof   wc);  
  wc.lpfnWndProc       =   DefWindowProc;  
  wc.hInstance           =   GetModuleHandle(NULL);  
  wc.lpszClassName   =   "_Hide!!!";  
  wc.lpszMenuName     =   NULL;  
  wc.hbrBackground   =   (HBRUSH)::GetStockObject(GRAY_BRUSH);  
  wc.hCursor               =   ::LoadCursor(NULL,   IDC_ARROW);  
  RegisterClass(&wc);  
  m_hWnd   =   ::CreateWindow("_Hide!!!","Output   Window",                                           WS_OVERLAPPEDWINDOW   |   WS_CHILDWINDOW   |   WS_POPUPWINDOW     |   CS_OWNDC,             CW_USEDEFAULT,   CW_USEDEFAULT,   500,   400,   hWndParent,   0,   GetModuleHandle(NULL)   ,   0);  
   
  其中的hWndParent是一个mfc的对话框的m_hWnd  
  但是创建这个窗体的线程是我用CreateThread开的  
   
  后面的代码:  
  m_hDc   =   GetDC(m_hWnd);  
  HDC   memDC   =   CreateCompatibleDC   (   m_hDc   );  
  HBITMAP   memBM   =   CreateDIBitmap(m_hDc,&m_bmi.bmiHeader,CBM_INIT,pData,&m_bmi,DIB_RGB_COLORS);  
  好了,这个CreateDIBitmap返回0   !!!555~~~  
   
  m_bmi内容如下  
  tagBITMAPINFO  
  tagBITMAPINFOHEADER  
  biSize 44 unsigned   long  
  biWidth 320 long  
  biHeight 240 long  
  biPlanes 1 unsigned   short  
  biBitCount 32 unsigned   short  
  biCompression 0 unsigned   long  
  biSizeImage 230400 unsigned   long  
  biXPelsPerMeter 0 long  
  biYPelsPerMeter 0 long  
  biClrUsed 0 unsigned   long  
  biClrImportant 0 unsigned   long  
   
  其中dib格式开始用RGB24也不行  
  GetDeviceCaps(m_hDc,RASTERCAPS);居然得到0xffffeef9  
  当时的屏幕是32位的(显示的至少是这么多)  
  如果我在xp用,什么都是好的  
  GetDeviceCaps(m_hDc,RASTERCAPS)得到7e99  
   
  我又写了一个小程序,代码几乎是一样的,没用mfc,结果都是对的  
  但是这个程序必须用mfc啊~~  
   
  那位大哥帮帮忙~~多谢多谢 问题点数:100、回复次数:5Top

1 楼Oversense(步步文)回复于 2003-05-03 06:13:39 得分 0

程序运行在windows   me下的,我在xp下用vc2003最终测试版写的,然后远程调试的~Top

2 楼Oversense(步步文)回复于 2003-05-03 13:11:07 得分 0

问题解决了,谢谢Top

3 楼zhoory(●Ant_Caesar●)回复于 2003-05-03 23:11:27 得分 10

呵呵。OKTop

4 楼herrycsdn(卓一凡)回复于 2003-05-03 23:22:12 得分 10

恭喜楼主,贺喜楼主了Top

5 楼stidio_zhougang(回头是岸)回复于 2003-09-08 15:54:52 得分 80

那肯定是你那里的值赋错了!Top

相关问题

  • 唉......我真失败啊
  • 为何我SelectObject失败?
  • QueryInterface执行失败,我如何知道失败的原因呢?
  • QueryInterface执行失败,我如何知道失败的原因呢?
  • 真失败,没人冒充我!
  • 谁的圣诞有我失败?
  • 为什么我给分失败
  • 帮我同情一个失败者.
  • 为什么我导入总是失败?
  • 我用Lomboz启动tomcat失败,求救

关键词

  • ws
  • null
  • createdibitmap
  • wc
  • hdc
  • hwnd

得分解答快速导航

  • 帖主:Oversense
  • zhoory
  • herrycsdn
  • stidio_zhougang

相关链接

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

广告也精彩

反馈

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