如何向用DirectX等写的基于图形模式的程序中输出文字啊,
这些程序根本就没有窗口概念,强行用GDI绘制文字也只会稍纵即逝。
有哪位大侠有解决方案啊

解决方案 »

  1.   

    你没有它的例子嘛
    那例子上都有的啊
    我的是directx 10
      

  2.   

    hook directx中的EndScene函数,在这个函数里面textout就可以了,当然你要先获得它的hdc
    你搜索一下hook com吧
      

  3.   

    http://www.gamedev.net/community/forums/topic.asp?topic_id=359794
    他在上面画了一个图,你写字当然更容易了
      

  4.   

    1. D3DX库提供接口ID3DXFont,该接口用于在Direct3D应用程序中绘制文本. 2. 类CD3DFont可借助Direct3D和映射有纹理的三角形绘制文本. 3. D3DXCreateText函数创建并绘制文本. 上面三种方法都没用过,书上介绍的.
      

  5.   

    zzz822163大侠,你真是个好人啊,那个例子太好了。
    不过大侠你能给我一段写文字的代码吗,小弟我对DirectX太不熟悉了,呵呵。
      

  6.   

    LPDIRECTDRAWSURFACE   lpDDS,     
      char*   str,     
      COLORREF   bcolor,     
      COLORREF   tcolor,     
      int   posx,   int   posy   
        
        
              HDC   hdc;   
              if(SUCCEEDED(lpDDS->GetDC(&hdc))){   
                      SetBkColor(hdc,   bcolor);   
                      SetTextColor(hdc,   tcolor);   
                      TextOut(hdc,   posx,   posy,   str,   lstrlen(str));   
                      lpDDS->ReleaseDC(hdc   );   
              }
      

  7.   

    zzz822163大哥,
    lpDDS该怎么初始化啊
      

  8.   

    sorry,说错了,LPDIRECTDRAWSURFACE  是ddraw中的
    用IDirect3DSurface9::GetDC取得纹理DC,在纹理上写
    或者GetDC(hWnd)直接用窗体句柄试试要不行还是用上面说的
    1. D3DX库提供接口ID3DXFont,该接口用于在Direct3D应用程序中绘制文本. 2. 类CD3DFont可借助Direct3D和映射有纹理的三角形绘制文本. 3. D3DXCreateText函数创建并绘制文本.