在网上找不到合适的例子,或代码不完整不能运行!
用过DirectDraw的程序员,提供一些源代码吧!
知道很简单,但我新接触DirectDraw!谢谢!DirectDraw

解决方案 »

  1.   

    DirectDraw 只显示,没有画线函数,看我的资源和 Blog,
      

  2.   


    HDC  hdc;
    HRESULT         ddrval;
    ddrval = DirectDrawCreate( NULL, &g_pDD, NULL );
    if( ddrval == DD_OK )   
    {
    // 获取独占模式
    ddrval = g_pDD->SetCooperativeLevel(AfxGetMainWnd()->GetSafeHwnd(), DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
    if(ddrval == DD_OK )   
    {            
    DDSURFACEDESC  ddsd;//创建一个DDSURFACEDESC对象。
    ddsd.dwSize = sizeof( ddsd );
    ddsd.dwFlags = DDSD_CAPS;
    ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
    ddsd.dwBackBufferCount = 1;
    ddrval = g_pDD->CreateSurface( &ddsd, &g_pDDSFront, NULL );
    if( ddrval == DD_OK )           
    {
    if (g_pDDSFront->GetDC(&hdc) == DD_OK)     
    {
    CPen pen(PS_SOLID,1,RGB(255,0,0));
    CPoint  point1(100,200), point2(200,400);
    CPen *pOldPen= (CPen*)SelectObject(hdc,pen.GetSafeHandle()); MoveToEx(hdc,point1.x,point1.y,NULL);
    LineTo(hdc,point2.x,point2.y); ::SelectObject(hdc,pOldPen); g_pDDSFront->ReleaseDC(hdc);
    } } }
    }代码在view的OnPaint()函数里,不能显示直线!
    还缺少那些代码?
      

  3.   

    if (g_pDDSFront->GetDC(&hdc) == DD_OK)   
    DirectDraw是只能使用HDC,如何使用CClientDC?
      

  4.   

    DirectDraw在view的OnDraw上画图,如果不是全屏,或移动屏幕,图就发生变化,画在桌面上,而不是客户区!
    你做过类似的功能,指点一下,谢谢!
      

  5.   

    没有翻转页面啊,还有用directdraw就不要用pen了,不是一家人,widows游戏编程大师技巧有画线的方法,
    然后画园的话autocad是用线来画的,再然后其实directdraw也不要用了,即便是2d,用direct3d也是很容易的,看,direct3d中的2d编程
      

  6.   

    Direct Draw使用GDI在view的OnDraw上画图,图画在桌面上,而不是客户区。
    但直接使用GDI,就没有这种情况。
    怎么解决?