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

我写的directX的 hello world 程序,问题请看具体内容?

楼主BOYGUARD110(BOYGUARD110)2005-01-01 13:29:16 在 VC/MFC / 图形处理/算法 提问

 
  在网上搜了一些入门的hello   world   级别的   directX   程序,  
  感觉还是不够hello   world,不够简单,我的要求如下:  
   
    1.   用directX   显示出hello   world    
   
    2.   所有的   过程   放在一个函数中   一个直筒子下来,不要调来调去,  
           
    3.   不要使用后备表面(是不是   非要用后备表面   ?)  
   
  ////////////////////////////  
  //  
  我写的代码如下  
     
  windows2000   ,   vc6.0   ,mfc   sdi   框架  
   
   
   
  #include   <ddraw.h>  
  #pragma   comment(lib,"Ddraw.lib")  
   
   
  //  
  ///////////////////////////////////////////////  
   
  void   CMainFrame::OnMenuitem32772()    
  {  
   
        LPDIRECTDRAW                 lpDD;    
        LPDIRECTDRAWSURFACE   lpDDSPrimary;      
   
   
   
        if   (   ::DirectDrawCreate(   NULL,   &lpDD,   NULL   )   !=   DD_OK   )    
                {     AfxMessageBox("   ");   return     ;   }  
   
          HWND   hwnd   =   ::GetActiveWindow();  
   
          //     取得独占和全屏模式  
          if   (   lpDD->SetCooperativeLevel  
    (hwnd,DDSCL_EXCLUSIVE   |DDSCL_FULLSCREEN   )   !=   DD_OK)  
                {     AfxMessageBox("   ");   return     ;   }  
   
           
   
          //     设置显示模式  
          if   (   lpDD->SetDisplayMode(   640,   480,   8   )   !=   DD_OK)    
                {     AfxMessageBox("   ");   return     ;   }  
   
           
          //   存放   DirectX   页面描述  
          DDSURFACEDESC   ddsd={0};        
          ddsd.dwSize   =   sizeof(   ddsd   );//   结构的大小  
          ddsd.dwFlags   =   DDSD_CAPS|DDSD_BACKBUFFERCOUNT;    
          ddsd.ddsCaps.dwCaps   =   DDSCAPS_PRIMARYSURFACE    
           
  if   (   lpDD->CreateSurface(   &ddsd,   &lpDDSPrimary,   NULL   )   !=   DD_OK)  
        {     AfxMessageBox("     ");   return     ;   }  
                   
          //输出文字  
          HDC   hdc;   //设备环境句柄  
     
      //输出文字  
  if   (   lpDDSPrimary->GetDC(&hdc)   !=   DD_OK)    
          {     AfxMessageBox("   ");   return     ;   }  
   
          char     str[]   =   "hello   world";  
   
        ::SetBkColor(   hdc,   RGB(   0,   0,   255   )   );  
        ::SetTextColor(   hdc,   RGB(   255,   255,   0   )   );  
        ::TextOut(   hdc,   10,   10,   str,   lstrlen(str));  
   
     
        lpDDSPrimary->ReleaseDC(hdc);  
   
  }  
   
  //  
  //////////////////////////////  
   
  上面的代码可以运行成功,   可以就是没有文字出现,  
   
  请大家指出错误之处,谢谢  
   
   
   
   
   
   
   
   
   
   
  问题点数:100、回复次数:4Top

1 楼rshu(破裤男人)回复于 2005-01-01 13:38:24 得分 40

被刷新了,Top

2 楼BOYGUARD110(BOYGUARD110)回复于 2005-01-01 14:43:29 得分 0

 
    怎么解决呢   ,谢谢Top

3 楼woodwoodwood3()回复于 2005-01-01 15:01:13 得分 50

放到OnTimer()里面就行了。时间长短自己定。Top

4 楼myling(不理你)回复于 2005-01-01 16:17:56 得分 10

不要使用后备表面  
   
  ===========================为啥?Top

相关问题

  • 我想写一个显示“HELLO,WORLD”的程序,请高手给出用JB7写这个程序的具体步骤。
  • 具体的程序编译问题!!!(急)
  • Hello,world程序是指哪类程序>
  • login和 minigetty程序的源码具体在什么地方呢?
  • 远程监控程序的具体问题
  • 如何查找某一应用程序?具体见内。
  • 程序复杂度和深度的具体定义?
  • 如何写无限循环程序(具体含义见内容)
  • VB可以编DirectX程序了!!!
  • 用C++Builder开发DirectX应用程序

关键词

  • directx
  • null
  • ddsd
  • lpdd
  • lpddsprimary
  • afxmessagebox
  • hello world
  • 后备表面
  • dd
  • hdc

得分解答快速导航

  • 帖主:BOYGUARD110
  • rshu
  • woodwoodwood3
  • myling

相关链接

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

广告也精彩

反馈

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