|
为什么我调用了SetDisplayMode图片就不能正常显示呢
部分源码如下
BOOL InitDDraw(HWND hWnd){
ddrval=DirectDrawCreate(NULL,&lpDD,NULL);
if(ddrval!=DD_OK)
return false;
ddrval=lpDD->SetCooperativeLevel(hWnd,DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN);
if(ddrval!=DD_OK)
MessageBox(hWnd,"SetCooperativeLevel Failed","Notice",MB_OK);
这里注释掉就可以显示了。why ?(我试过其他的现实模式)
// ddrval=lpDD->SetDisplayMode(800,600,8);
// if(ddrval!=DD_OK)
// MessageBox(hWnd,"SetDisplayMode Failed","Notice",MB_OK);
DDSURFACEDESC ddsd;
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags=DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount=1;
ddrval=lpDD->CreateSurface(&ddsd,&lpDDSPrimary,NULL);
if(ddrval!=DD_OK)
return false;
ddrval = DDReLoadBitmap(lpDDSPrimary, "map01.bmp");
if(ddrval != DD_OK)
return false;
return true;
}
注:DDReLoadBitmap是msdn里dutil.cpp里的通用函数 |
|