📄 cpage.cpp
字号:
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=Left;
m_PrtDesc.rc.top=Top;
m_PrtDesc.rc.right=Right;
m_PrtDesc.rc.bottom=Bottom;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
m_nNextPos=m_PrtDesc.m_NextCharPos;
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Prints text clipped to a bounding rectangle. See the header for default
// parameters. Allows for newspaper like columns
// params:
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::PrintColumn(double Top,double Left,double Bottom,double Right,UINT flags,int PointSize,LPCSTR Text)
{
if(Left > SetRightMargin(0.0))
return;
if(Top > SetBottomMargin(0.0))
return;
SaveState();
m_PrtDesc.Text=Text;
ConvertArea(Top,Left,Bottom,Right);
if(PointSize > 0)
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=(int)Left;
m_PrtDesc.rc.top=(int)Top;
m_PrtDesc.rc.right=(int)Right;
m_PrtDesc.rc.bottom=(int)Bottom;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
m_nNextPos=m_PrtDesc.m_NextCharPos;
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Prints text clipped to a bounding rectangle. See the header for default
// parameters. Allows for newspaper like columns
// params: coordinates of the bounding rectangle flags pointsize and user supplied ID
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::PrintColumn(int Top,int Left,int Bottom,int Right,UINT flags,int PointSize,int ID)
{
if(pUserFunc==NULL)
return;
if(Left > SetRightMargin(0))
return;
if(Top > SetBottomMargin(0))
return;
SaveState();
m_PrtDesc.Text=pUserFunc(ID);
if(PointSize > 0)
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=Left;
m_PrtDesc.rc.top=Top;
m_PrtDesc.rc.right=Right;
m_PrtDesc.rc.bottom=Bottom;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
m_nNextPos=m_PrtDesc.m_NextCharPos;
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Prints text clipped to a bounding rectangle. See the header for default
// parameters. Allows for newspaper like columns
// params: Calls user defined function for data
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::PrintColumn(double Top,double Left,double Bottom,double Right,UINT flags,int PointSize,int ID)
{
if(pUserFunc==NULL)
return;
if(Left > SetRightMargin(0.0))
return;
if(Top > SetBottomMargin(0.0))
return;
SaveState();
m_PrtDesc.Text=pUserFunc(ID);
ConvertArea(Top,Left,Bottom,Right);
if(PointSize > 0)
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=(int)Left;
m_PrtDesc.rc.top=(int)Top;
m_PrtDesc.rc.right=(int)Right;
m_PrtDesc.rc.bottom=(int)Bottom;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
m_nNextPos=m_PrtDesc.m_NextCharPos;
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Prints text clipped to a bounding rectangle. See the header for default
// parameters. Allows for newspaper like columns
// params:
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::PrintColumn(CPrintRegion* pRegion,int Top,int Left,int Bottom,int Right,UINT flags,int PointSize,LPCSTR Text)
{
SaveState();
m_PrtDesc.Text=Text;
if(PointSize > 0)
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=Left+pRegion->FirstX;
m_PrtDesc.rc.top=Top+pRegion->FirstY;
m_PrtDesc.rc.right=Right+pRegion->FirstX;
m_PrtDesc.rc.bottom=Bottom+pRegion->FirstY;
if(m_PrtDesc.rc.bottom > pRegion->bottom)
m_PrtDesc.rc.bottom=pRegion->bottom;
if(m_PrtDesc.rc.left > pRegion->right)
m_PrtDesc.rc.left=pRegion->right;
if(m_PrtDesc.rc.top > pRegion->bottom)
m_PrtDesc.rc.top=pRegion->bottom;
if(m_PrtDesc.rc.right > pRegion->right)
m_PrtDesc.rc.right=pRegion->right;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Prints text clipped to a bounding rectangle. See the header for default
// parameters. Allows for newspaper like columns
// params:
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::PrintColumn(CPrintRegion* pRegion,double Top,double Left,double Bottom,double Right,UINT flags,int PointSize,LPCSTR Text)
{
SaveState();
m_PrtDesc.Text=Text;
ConvertArea(Top,Left,Bottom,Right);
if(PointSize > 0)
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=(int)Left+pRegion->FirstX;
m_PrtDesc.rc.top=(int)Top+pRegion->FirstY;
m_PrtDesc.rc.right=(int)Right+pRegion->FirstX;
m_PrtDesc.rc.bottom=(int)Bottom+pRegion->FirstY;
if(m_PrtDesc.rc.bottom > pRegion->bottom)
m_PrtDesc.rc.bottom=pRegion->bottom;
if(m_PrtDesc.rc.left > pRegion->right)
m_PrtDesc.rc.left=pRegion->right;
if(m_PrtDesc.rc.top > pRegion->bottom)
m_PrtDesc.rc.top=pRegion->bottom;
if(m_PrtDesc.rc.right > pRegion->right)
m_PrtDesc.rc.right=pRegion->right;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
m_nNextPos=m_PrtDesc.m_NextCharPos;
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Prints text clipped to a bounding rectangle. See the header for default
// parameters. Allows for newspaper like columns
// params: Calls user defined function for data
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::PrintColumn(CPrintRegion* pRegion,int Top,int Left,int Bottom,int Right,UINT flags,int PointSize,int ID)
{
if(pUserFunc==NULL)
return;
SaveState();
m_PrtDesc.Text=pUserFunc(ID);
if(PointSize > 0)
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=Left+pRegion->FirstX;
m_PrtDesc.rc.top=Top+pRegion->FirstY;
m_PrtDesc.rc.right=Right+pRegion->FirstX;
m_PrtDesc.rc.bottom=Bottom+pRegion->FirstY;
if(m_PrtDesc.rc.bottom > pRegion->bottom)
m_PrtDesc.rc.bottom=pRegion->bottom;
if(m_PrtDesc.rc.left > pRegion->right)
m_PrtDesc.rc.left=pRegion->right;
if(m_PrtDesc.rc.top > pRegion->bottom)
m_PrtDesc.rc.top=pRegion->bottom;
if(m_PrtDesc.rc.right > pRegion->right)
m_PrtDesc.rc.right=pRegion->right;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Prints text clipped to a bounding rectangle. See the header for default
// parameters. Allows for newspaper like columns
// params: Calls user defined function for data
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::PrintColumn(CPrintRegion* pRegion,double Top,double Left,double Bottom,double Right,UINT flags,int PointSize,int ID)
{
if(pUserFunc==NULL)
return ;
SaveState();
m_PrtDesc.Text=pUserFunc(ID);
ConvertArea(Top,Left,Bottom,Right);
if(PointSize > 0)
m_PrtDesc.PointSize=PointSize;
if(flags != IGNORE_PARAM)
m_PrtDesc.uTextFlags=flags;
m_PrtDesc.rc.left=(int)Left+pRegion->FirstX;
m_PrtDesc.rc.top=(int)Top+pRegion->FirstY;
m_PrtDesc.rc.right=(int)Right+pRegion->FirstX;
m_PrtDesc.rc.bottom=(int)Bottom+pRegion->FirstY;
if(m_PrtDesc.rc.bottom > pRegion->bottom)
m_PrtDesc.rc.bottom=pRegion->bottom;
if(m_PrtDesc.rc.left > pRegion->right)
m_PrtDesc.rc.left=pRegion->right;
if(m_PrtDesc.rc.top > pRegion->bottom)
m_PrtDesc.rc.top=pRegion->bottom;
if(m_PrtDesc.rc.right > pRegion->right)
m_PrtDesc.rc.right=pRegion->right;
ThePrinter.PrintText(&m_PrtDesc,m_Spacing);
m_nNextPos=m_PrtDesc.m_NextCharPos;
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// DRAWING ROUTINES ( SHAPES )
////////////////////////////////////////////////////////////////////////////
// Desc: Draws a line from point top,left to bottom,right
// params: position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Line(int top,int left,int bottom,int right,int LineSize,UINT flag)
{
SaveState();
if(flag != IGNORE_PARAM)
m_PrtDesc.uPenFlags=flag;
m_PrtDesc.rc.top=top;
m_PrtDesc.rc.bottom=bottom;
m_PrtDesc.rc.left=left;
m_PrtDesc.rc.right=right;
ThePrinter.DrawLine(&m_PrtDesc,LineSize);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a line using parameters passed
// params: position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Line(double top,double left,double bottom,double right,int LineSize,UINT flag)
{
SaveState();
if(flag != IGNORE_PARAM)
m_PrtDesc.uPenFlags=flag;
ConvertArea(top,left,bottom,right);
m_PrtDesc.rc.top=(int)top;
m_PrtDesc.rc.bottom=(int)bottom;
m_PrtDesc.rc.left=(int)left;
m_PrtDesc.rc.right=(int)right;
ThePrinter.DrawLine(&m_PrtDesc,LineSize);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a rectangle using parameters passed
// params: position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Box(int top,int left,int bottom,int right,int LineSize,UINT Fillflags,UINT PenFlags)
{
SaveState();
if(Fillflags != IGNORE_PARAM)
m_PrtDesc.uFillFlags=Fillflags;
if(PenFlags != IGNORE_PARAM)
m_PrtDesc.uPenFlags=PenFlags;
m_PrtDesc.rc.top=top;
m_PrtDesc.rc.bottom=bottom;
m_PrtDesc.rc.left=left;
m_PrtDesc.rc.right=right;
ThePrinter.DrawRect(&m_PrtDesc,LineSize);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a rectangle using parameters passed
// params: position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Box(double top,double left,double bottom,double right,int LineSize,UINT Fillflags,UINT PenFlags)
{
SaveState();
if(Fillflags != IGNORE_PARAM)
m_PrtDesc.uFillFlags=Fillflags;
if(PenFlags != IGNORE_PARAM)
m_PrtDesc.uPenFlags=PenFlags;
ConvertArea(top,left,bottom,right);
m_PrtDesc.rc.top=(int)top;
m_PrtDesc.rc.bottom=(int)bottom;
m_PrtDesc.rc.left=(int)left;
m_PrtDesc.rc.right=(int)right;
ThePrinter.DrawRect(&m_PrtDesc,LineSize);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draws a line from point top,left to bottom,right
// params: CPrintRegion*, position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Line(CPrintRegion* pRegion,int top,int left,int bottom,int right,int LineSize,UINT flag)
{
SaveState();
if(flag != IGNORE_PARAM)
m_PrtDesc.uPenFlags=flag;
m_PrtDesc.rc.top=(int)top+pRegion->FirstY;
m_PrtDesc.rc.bottom=(int)bottom+pRegion->FirstY;
m_PrtDesc.rc.left=(int)left+pRegion->FirstX;
m_PrtDesc.rc.right=(int)right+pRegion->FirstX;
if(m_PrtDesc.rc.bottom > pRegion->bottom)
m_PrtDesc.rc.bottom=pRegion->bottom;
if(m_PrtDesc.rc.left > pRegion->right)
m_PrtDesc.rc.left=pRegion->right;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -