说实话,最近一段时间由于项目的关系,不得不和MFC里面的图形东西打交道。
在mfc里面感觉CBITMAP里面的一些函数像是被微软抛弃了,按部就班的创建一个24位图像却始终不能成功。
最后转向DIB来创建。
然后显示也是一样的,感觉MFC里面很多东西都被抛弃了,很多都不能成功。
下面是创建24位位图,并且将位图保存到bmp文件里面的代码:
CDC *pdeskdc = GetDesktopWindow()->GetWindowDC() ;
CDC memdc;
memdc.CreateCompatibleDC(pdeskdc);
int nWidth = GetSystemMetrics(SM_CXSCREEN);
int nHeight = GetSystemMetrics(SM_CYSCREEN);
BITMAPINFO bi;
ZeroMemory(&bi, sizeof(BITMAPINFO));
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biWidth = nWidth;
bi.bmiHeader.biHeight = nHeight;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 24;
BITMAPINFOHEADER bih;
memset( &bih , 0 , sizeof(bih) );
HCURSOR hCursor = GetCursor();
POINT ptCursor;
GetCursorPos(&ptCursor);
ICONINFO IconInfo = {0};
if(GetIconInfo(hCurs