|
|
????????????BMP?????Surface??????
???????lpSurface ?????LPDIRECTDRAWSURFACE7 ???
??????????BMP?????,? "C:\\aaa.bmp"
HRESULT CreateSurfaceFormBitmap(LPDIRECTDRAWSURFACE7 lpSurface,TCHAR *Path)
{
HDC hdc_surf;
HDC hdc_image;
HBITMAP hbmp1;
BITMAP bmp1;
DDSURFACEDESC2 ddsd_t;
hbmp1 = (HBITMAP)LoadImage(0,Path,IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_DEFAULTSIZE);
hdc_image = CreateCompatibleDC(NULL);
SelectObject(hdc_image,hbmp1);
GetObject(hbmp1,sizeof(bmp1),&bmp1);
ZeroMemory(&ddsd_t,sizeof(ddsd_t));
ddsd_t.dwSize = sizeof(ddsd_t);
ddsd_t.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd_t.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
ddsd_t.dwHeight = bmp1.bmHeight;
ddsd_t.dwWidth = bmp1.bmWidth;
rsl = lpdraw->CreateSurface(&ddsd_t,&lpSurface,NULL);
if (FAILED(rsl))
MessageBox(hWnd,"error1","error1",0);
rsl = lpSurface->GetDC(&hdc_surf);
if (FAILED(rsl))
MessageBox(hWnd,"error3","error3",0);
StretchBlt(hdc_surf,0,0,bmp1.bmWidth,bmp1.bmHeight,hdc_image,0,0,bmp1.bmWidth,bmp1.bmHeight,SRCCOPY);
lpSurface->ReleaseDC(hdc_surf);
DeleteDC(hdc_image);
DeleteObject(hbmp1);
return DD_OK;
}
??????????????? GetSurfaceDesc????????Surface??????????????????????GetSurfaceDesc??????????????????????????????????????
????????????Directx SDK ??????Debug ?????????????
Directx9.0c ???????Directx7.0 SDK ? Directx8.1b SDK ????dxdiag?????
??"Directx ??"?????????? ??"???????????????????????????
[em4] |
|