|
|
发表于 2006-8-18 23:28:00
|
显示全部楼层
Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW
不好意思,最近比较忙,今天总算有点时间了。我改了一下你的部分代码,可以运行了:
InitGame.cpp
CInitGame::~CInitGame()
{
delete ddraw;
}
bool CInitGame::InitGame(HWND wnd, HINSTANCE hInst)
{
hWnd = wnd;
hInstance = hInst;
//初始化ddraw
ddraw = new DirectDraw();
if (!ddraw->InitDraw(wnd,hInst))
{
MessageBox(NULL,"InitDraw is Faild!","error",MB_OK);
return false;
}
g_pDDSLoading = ddraw->LoadBitmap("loading.bmp", 600, 400);
return true;
}
void CInitGame::Render()
{
//ddraw = new DirectDraw();
ddraw->ClearPrimarySurface();
//加载Loading位图
g_pDDSBuffer->Blt(NULL, g_pDDSLoading, NULL, NULL, NULL);
g_pDDSPrimary->Flip(NULL, DDFLIP_WAIT);
Sleep(1000);
}
DirectDraw.cpp
bool DirectDraw::InitDraw(HWND wnd,HINSTANCE hInst)
{
。。。
//创建缓冲页面
memset(&ddsd2, 0, sizeof(ddsd2));
ddsd2.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;
if (FAILED(g_pDDSPrimary->GetAttachedSurface(&ddsd2.ddsCaps, &g_pDDSBuffer)))
{
MessageBox(NULL,"GetAttachedSurface is faild!","error",MB_OK);
return FALSE;
}
} |
|