我是C++新手,必須截取屏幕截圖。我想我已經設置了除了打印方法本身之外的所有東西,這就是我正在掙扎的地方。C++截取屏幕截圖
我發現了一篇關於如何截圖的文章,但它對我來說不起作用。 (How to capture part of the screen and save it to a BMP?)
我的方法是這樣的:
STDOVERRIDEMETHODIMP VImplPrintable::Print(HDC hdc, CRect* pCr)
{
HDC hdcSource = GetDC(NULL);
HDC hdcMemory = CreateCompatibleDC(hdcSource);
int capX = GetDeviceCaps(hdcSource, HORZRES);
int capY = GetDeviceCaps(hdcSource, VERTRES);
HBITMAP hBitmap = CreateCompatibleBitmap(hdcSource, pCr->Width(), pCr->Height());
HBITMAP hBitmapOld = (HBITMAP)SelectObject(hdcMemory, hBitmap);
BitBlt(hdcMemory, 0, 0, pCr->Width(), pCr->Height(), hdcSource, pCr->top, pCr->left, SRCCOPY);
DeleteDC(hdcSource);
DeleteDC(hdcMemory);
return S_OK;
}
問題是截圖似乎是一個空的位圖。 我真的不知道我是否有意義創建一個新的HDC
當我 已經獲得一個參數。任何幫助表示讚賞。
定義「打印」 - 這可能意味着任何的許多事情 –
@BoundaryImposition打印部分是有點神奇的給我。我認爲這已經發生在別的地方。問題出現在打印預覽中我的Wpf視圖應該在的地方,裏面只有一個空白空間的框架。所以我猜這個標題有點誤導,如果我理解正確,這種方法並不是真正的打印,即使它的名字是Print。 – user3292642
嗯......即使它的魔力,你也不得不以某種方式與它互動。 **定義**你希望如何使用屏幕截圖 –