位图处理
在Microsort Win32程序员参考大全第29章位图使用部分中有这样一段代码
hdcScreen=CreateDC("DISPLAY","NULL",NULL,NULL);
if (hdcScreen==0 )
{
a=GetLastError();
};
hdcCompatible=CreateCompatibleDC(hdcScreen);
b=GetDeviceCaps(hdcScreen,HORZRES);
c=GetDeviceCaps(hdcScreen,VERTRES);
hbmScreen=CreateCompatibleBitmap(hdcScreen,b,c);
ShowWindow(_hWnd,SW_HIDE);
if (!SelectObject(hdcCompatible,hbmScreen))
{
a=GetLastError();
};
GetObject(hbmScreen,sizeof(BITMAP),&bmp);
d=BitBlt(hdc,0,0,bmp.bmWidth ,bmp.bmHeight,
hdcCompatible,0,0,SRCCOPY);
ShowWindow(_hWnd,SW_SHOW);
按照书中的示意可以实现将Screen拷贝,显示在当前窗口中,但我反复测试出口都是空白(运行环境Win2000server)。将hbmScreen存成bmp文件后是一3M的空白图像。百思不解,请指点迷惊。
另CreateDC、CreateCompatibleDC、CreateCompatibleBitmap参照msdn能够知其意,但总感觉没能透彻理解,能否形象化的解释一下,或推荐学习材料,不胜感激。