我希望能夠打印兩個hdcs的東西,比如hdcBuf
和hdcBuf2
。然後我想將BitBlt
hdcBuf
轉換爲hdcBuf2
,然後將BitBlt
hdcBuf2
轉換爲hdc
,這是客戶端窗口。下面的代碼我現在有:如何一起使用三個HDC
hdc = GetDC(hWnd);
hdcBuf2 = CreateCompatibleDC(hdc);
hbmBackBM2 = CreateCompatibleBitmap(hdc, client.right, client.bottom);
hbmOldBackBM2 = (HBITMAP)SelectObject(hdcBuf2, hbmBackBM2);
hdcBuf = CreateCompatibleDC(hdcBuf2);
hbmBackBM = CreateCompatibleBitmap(hdcBuf2, client.right, client.bottom);
hbmOldBackBM = (HBITMAP)SelectObject(hdcBuf, hbmBackBM);
Graphics g(hdcBuf);
Graphics g2(hdcBuf2);
//drawing stuff with both g and g2
BitBlt(hdcBuf2,0,0,client.right,client.bottom,hdcBuf,0,0,SRCCOPY);
BitBlt(hdc,0,0,client.right,client.bottom,hdcBuf2,0,0,SRCCOPY);
所有的HDC和HBITMAPs的是全球性的,並在WM_DESTROY妥善破壞,圖形對象是GDI +
的原因,我需要所有這些HDCS是,我需要一個物體在另一個物體上同時打印物體。我有一張平鋪的地圖,並在繪圖時循環顯示它的一部分。我需要打印瓷磚和可能在多個瓷磚上的物體,但瓷磚必須位於物體下方。只需一個hdcBuf,我需要循環兩次來完成這個工作。
現在,我的代碼只打印瓷磚上的對象hdcBuf
的內容。
在此先感謝您的幫助:)