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

急急急!!!下面代码哪错了???Help,Help,Help!!!

楼主AutoBot(先锋鸟)2003-12-03 10:52:30 在 专题开发/技术/项目 / 游戏开发 提问

病情:我想在"WM_TIMER"中响应定时消息,连续贴图,翻转几张连续的图片可是运行后只是黑屏."KillTimer()"返回一个错误值.小弟实在找不出哪错了,请各位帮忙,谢谢!  
   
   
   
  LRESULT   CALLBACK   WndProc(HWND   hWnd,UINT   msg,WPARAM   wParam,LPARAM   lParam)  
  {  
  static   int   i=0;  
  switch(msg)  
  {  
  case   WM_KEYDOWN:  
  {  
  switch(wParam)  
  case   VK_ESCAPE:  
  {  
  PostMessage(hWnd,WM_CLOSE,0,0);  
  break;  
  }  
  break;  
  }  
  case   WM_CREATE:  
  SetTimer(GetActiveWindow(),1,500,NULL);  
  break;  
  case   WM_TIMER:  
  if(wParam==1)  
  {  
  DDBLTFX   fx;  
  fx.dwSize=sizeof(fx);  
  fx.dwFillPixel   =0;     //设置为黑色  
  lpDDPSur7->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&fx);//清屏  
  hdc1=::CreateCompatibleDC(NULL);  
  //下面的函数中将图片以800*600大小读入.  
  hBitmap=(HBITMAP)::LoadImage(NULL,name[i],IMAGE_BITMAP,800,600,LR_LOADFROMFILE);  
  ::SelectObject(hdc1,hBitmap);  
  lpDDOSur7[i]->GetDC(&hdc);  
  //下面的函数中以图片的800*600大小输出.  
  ::BitBlt(hdc,0,0,800,600,hdc1,0,0,SRCCOPY);//从源图(0,0)截取800*600大小的图片放到(0,0)位置  
  lpDDOSur7[i]->ReleaseDC(hdc);  
  DeleteDC(hdc1);  
  lpDDBSur7->BltFast(0,0,lpDDOSur7[i],&rect,DDBLTFAST_WAIT);  
  lpDDPSur7->Flip(NULL,DDFLIP_WAIT);  
  i=(i+1)%7;  
  }  
  break;  
  case   WM_ACTIVATE:  
  {  
  bActive=wParam;  
  break;  
  }  
  case   WM_DESTROY:  
  {  
  KillTimer(GetActiveWindow(),1);  
  FreeDDraw();  
  PostQuitMessage(0);  
  break;  
  }  
  }  
  return   DefWindowProc(hWnd,msg,wParam,lParam);  
  } 问题点数:0、回复次数:5Top

1 楼minus()回复于 2003-12-03 17:18:23 得分 0

这程序太烂,应该首先一次装好文件,这样每次装入又不释,不出问题才怪Top

2 楼answerear(有钱谈理想,无钱谈赚钱)回复于 2003-12-03 17:59:06 得分 0

你写的是什么程序啊?  
  一般的游戏程序或者directx程序很少这样写的啊.Top

3 楼honghaier(红孩儿)回复于 2003-12-03 18:17:32 得分 0

lpDDOSur7[i]->GetDC(&hdc);  
  ::BitBlt(hdc,0,0,800,600,hdc1,0,0,SRCCOPY);  
  lpDDBSur7->BltFast(0,0,lpDDOSur7[i],&rect,DDBLTFAST_WAIT);  
  lpDDOSur7[i]->ReleaseDC(hdc);  
  DeleteDC(hdc1);  
  应先调用BltFast再释放hdcTop

4 楼honghaier(红孩儿)回复于 2003-12-03 18:18:31 得分 0

另外rect定义好了吗?  
  在  
  lpDDBSur7->BltFast(0,0,lpDDOSur7[i],&rect,DDBLTFAST_WAIT);Top

5 楼AutoBot(先锋鸟)回复于 2003-12-04 09:27:20 得分 0

谢谢各位,I'm   the   beginner.Top

相关问题

  • 急急急急急急急急急急急,菜鸟求教,如何读取WORD内容,代码总出错,急急急急急急急急
  • 急急急急急急急急急急急,菜鸟求教,ASP调用DLL,代码总出错,急急急急急急急急
  • 急急急急急急急急急急急,菜鸟求教,ASP调用VB的DLL,代码总出错,急急急急急急急急
  • 急急急急急急急急急急急,菜鸟求教,一段选择文件夹的代码总出错,急急急急急急急急
  • 我的代码错在什么地方?真给分!急!急!急!急!急!急!急!
  • 急急急急急急急急急急急急急急,此段代码连接数据库一问,急急急急急急急急急急
  • 请问,怎样用C++下载指定网页的HTML源代码?!!急急急急急急急急急急急急急急急急急急急急急
  • 怎样取得ADO中的错误代码???急急急!!!
  • 用vb生成dll封装asp代码 急急急急急急急急急急急急急急急急急急急急
  • 求动态建立odbc的代码,急急急急急急急急

关键词

  • null
  • fx
  • hdc
  • help
  • hbitmap
  • wparam
  • 图片
  • 大小
  • wm
  • hwnd

得分解答快速导航

  • 帖主:AutoBot

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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