游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: xxnn

DirectDraw高手进

[复制链接]

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-7-13 15:06:00 | 显示全部楼层

Re:DirectDraw高手进

发代码看看

56

主题

758

帖子

768

积分

高级会员

Rank: 4

积分
768
 楼主| 发表于 2007-7-13 15:16:00 | 显示全部楼层

Re: DirectDraw高手进

下面是程序的主要部分代码:

LPDIRECTDRAW lpDD
LPDIRECTDRAWSURFACE lpDDPrimary  //主表面,用来显示图像

下面代码是MFC类库下的:
CWinApp::InitInstance(~~):
//初始化
if(FAILED(lpDD->CreateSurface(&ddsd, &lpDDBack, NULL)))
{
return FALSE;
};
if( FAILED(lpDD->CreateClipper(0, &lpDDClipper, NULL)) )
{
return false;
}
       
if( FAILED(lpDDClipper->SetHWnd(0, this->m_pMainWnd->m_hWnd)) )
{
return false;
}
       
if( FAILED(lpDDPrimary->SetClipper(lpDDClipper)) )
{
  return false;
}

///////////
窗口重绘OnPaint():

CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
HDC hdc,hdc1;
hdc=::CreateCompatibleDC(dc);
::SelectObject(hdc,(HBITMAP)bm);
if(lpDDprimary->GetDC(&hdc1))return FALSE;
::BitBlt(hdc1,rect.left,rect.top,rect.right,rect.bottom,hdc,0,0,SRCCOPY);
lpDDprimary->ReleaseDC(hdc1);


帮忙看看谢谢啦 [em3]

56

主题

758

帖子

768

积分

高级会员

Rank: 4

积分
768
 楼主| 发表于 2007-7-13 16:14:00 | 显示全部楼层

Re:DirectDraw高手进

一个小时过去了~~~~~~~~

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-7-13 17:20:00 | 显示全部楼层

Re:DirectDraw高手进

石化中,原来在MFC里捣鼓的……
虽然对MFC一点不熟,但是我觉得把blit放在OnPaint里不对吧,OnIdle才是吧
手上有个MFC结合DirectDraw的代码,你留下email我找到发给你

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-7-13 17:22:00 | 显示全部楼层

Re:DirectDraw高手进

OnIdle貌似也不对,似乎空闲时只执行一次,循环写在OnIdle?

6

主题

49

帖子

49

积分

注册会员

Rank: 2

积分
49
QQ
发表于 2007-7-14 09:24:00 | 显示全部楼层

Re:DirectDraw高手进

应该是裁减器问题.
楼主有没有应用裁减器?

我对MFC不熟悉.

56

主题

758

帖子

768

积分

高级会员

Rank: 4

积分
768
 楼主| 发表于 2007-7-16 09:01:00 | 显示全部楼层

Re:DirectDraw高手进

浪费大家时间了,不好意思。
我把代码稍加改动,就是让离屏页面得到DC,然后再拷贝给主页面,上面的问题就解决了。

56

主题

758

帖子

768

积分

高级会员

Rank: 4

积分
768
 楼主| 发表于 2007-7-16 09:03:00 | 显示全部楼层

Re:DirectDraw高手进

感谢FunCMan,MFC的例子我也有,暂时不需要
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 20:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表