M
money88
Unregistered / Unconfirmed
GUEST, unregistred user!
该控件从TQRPrintable类继承,用于绘制一个图案,由一个圆以及圆内环绕的一些字体组成,实现时我重载了Paint和Print方法,在Paint方法中是以0.01毫米为单位在画布上绘制,可以正常显示圆和里面的文字。但在Print时不知道该如何绘制?不知道怎么转换到QuickReport的坐标?因对图形控制方面知识比较薄弱,请有经验的朋友指教。
以下是Print方法的内容,目前可以在QuickRep上看到圆(实现了所见即所得),但里面的文字实在不知道怎么画?
void __fastcall TPostMark:rint(int OfsX, int OfsY)
{
TRect Dest;
Dest.Top = QRPrinter->YPos(OfsY + Size->Top);
Dest.Left = QRPrinter->XPos(OfsX + Size->Left);
Dest.Right = QRPrinter->XPos(OfsX + Size->Width + Size->Left);
Dest.Bottom = QRPrinter->YPos(OfsY + Size->Height + Size->Top);
//::IntersectClipRect(QRPrinter->Canvas->Handle, Dest.Left, Dest.Top, Dest.Right, Dest.Bottom);
QRPrinter->Canvas->Ellipse(Dest);
}
//---------------------------------------------------------------------------
此外,圆内环绕的文字目前是写死坐标实现,不知道有哪位朋友能提供一个公式计算里面这些文字的坐标。万分感激。
以下是Print方法的内容,目前可以在QuickRep上看到圆(实现了所见即所得),但里面的文字实在不知道怎么画?
void __fastcall TPostMark:rint(int OfsX, int OfsY)
{
TRect Dest;
Dest.Top = QRPrinter->YPos(OfsY + Size->Top);
Dest.Left = QRPrinter->XPos(OfsX + Size->Left);
Dest.Right = QRPrinter->XPos(OfsX + Size->Width + Size->Left);
Dest.Bottom = QRPrinter->YPos(OfsY + Size->Height + Size->Top);
//::IntersectClipRect(QRPrinter->Canvas->Handle, Dest.Left, Dest.Top, Dest.Right, Dest.Bottom);
QRPrinter->Canvas->Ellipse(Dest);
}
//---------------------------------------------------------------------------
此外,圆内环绕的文字目前是写死坐标实现,不知道有哪位朋友能提供一个公式计算里面这些文字的坐标。万分感激。