根據Windows GDI與設備無關的特點,利用BitBlt或StretchBlt函數將顯示設備上的位數據傳輸到目標設備上,然後在目標設備上創建兼容位圖:
SourceDC:=CreateDC(′DISPLAY′,′′,′′,nil);{創建源設備環境,DISPLAY為顯示器}
DestDC:=CreateCompatibleDC(SourceDC);
{創建和SourceDC兼容的目標設備環境}
BHandle:=CreateCompatibleBitmap(SourceDC,Screen.Width,Screen.Height) ;
{創建一個和SourceDC兼容的內存設備環境,並返回其設備句柄}
SelectObject(DestDC,BHandle);
BitBlt(DestDC,0,0,Screen.Width,Screen.Height,SourceDC,0,0,SRCCOPY) ;
{抓圖}
Bitmap:=TBitmap.Create;
{Bitmap為TBitmap類型}
Bitmap.Handle:=BHandle;
Bitmap.SaveToStream(′C:My DocumentsFullScreen.bmp′) ;{保存到文件}
DeleteDC(DestDC) ;
ReleaseDC(BHandle,SourceDC) ;
{釋放設備環境}
以上程序中,各設備環境的數據類型為Integer。