私は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ビューがあるはずの場所は、そこに空のスペースがあるフレームだけです。だから私はタイトルがちょっとミスリーディングだと思う、もしこの名前が印刷であっても、この方法は正しく理解すれば印刷に関するものではない。 – user3292642
ええと...たとえその魔法であっても、何とかそれとやりとりする必要があります。 **スクリーンショットの使用方法を**定義してください –