我想在列印 pdf 時在記事本中的文本中添加一行,為此我掛鉤Enddoc函式并使用 GDI LineTo()
。但是當我列印我的文本時,LineTo()
會在 pdf 的末尾創建新頁面并在其中繪制 Line。有沒有人知道如何在不創建新頁面的情況下在所有 pdf 頁面中畫線?這是我的代碼:
int StopPrint::hookFunction(HDC hdc, const DOCINFOW *lpdi)
{
HPEN hPen1 = CreatePen(PS_SOLID, 1, BLACK_PEN);
HGDIOBJ l = hPen1;
HPEN holdPen = (HPEN)SelectObject(hdc, l);
SelectObject(hdc, hPen1);
MoveToEx(hdc, 500, 500, NULL);
LineTo(hdc, 2000, 2000);
return getOriginalFunction()(hdc, lpdi);
}
uj5u.com熱心網友回復:
我不知道這是否可行或完全符合您的要求,但我認為您需要“掛鉤”EndPage
而不是EndDoc
. 此外,你的鉤子函式以各種方式被破壞,所以試試這個:
int StopPrint::EndPageHook(HDC hdc)
{
HPEN holdPen = (HPEN) SelectObject(hdc, GetStockObject (BLACK_PEN));
POINT old_pos;
MoveToEx(hdc, 500, 500, &old_pos);
LineTo(hdc, 2000, 2000);
MoveToEx(hdc, old_pos.x, old_pos,y, NULL);
SelectObject(hdc, holdPen);
return getOriginalEndPage()(hdc);
}
順便說一句,很奇怪的線,這對我來說看起來不對。可能想從當前位置(派生的東西)開始,看看你得到了什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493353.html