📄 cpage.cpp
字号:
}
////////////////////////////////////////////////////////////////////////////
// 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)
{
UINT OldColor,OldMode;
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;
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;
if(pRegion->FillColor > FILL_NONE)
OldMode=m_PrtDesc.pDC->SetBkMode(TRANSPARENT);
if(pRegion->FillColor > FILL_LTGRAY)
OldColor= SetColor(COLOR_WHITE);
ThePrinter.DrawLine(&m_PrtDesc,LineSize);
if(pRegion->FillColor > FILL_NONE)
m_PrtDesc.pDC->SetBkMode(OldMode);
if(pRegion->FillColor > FILL_LTGRAY)
SetColor(OldColor);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a line using parameters passed
// params:CPrintRegion*, position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Line(CPrintRegion* pRegion,double top,double left,double bottom,double right,int LineSize,UINT flag)
{
UINT OldColor,OldMode;
SaveState();
if(flag != IGNORE_PARAM)
m_PrtDesc.uPenFlags=flag;
ConvertArea(top,left,bottom,right);
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;
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;
if(pRegion->FillColor > FILL_NONE)
OldMode=m_PrtDesc.pDC->SetBkMode(TRANSPARENT);
if(pRegion->FillColor > FILL_LTGRAY)
OldColor= SetColor(COLOR_WHITE);
ThePrinter.DrawLine(&m_PrtDesc,LineSize);
if(pRegion->FillColor > FILL_NONE)
m_PrtDesc.pDC->SetBkMode(OldMode);
if(pRegion->FillColor > FILL_LTGRAY)
SetColor(OldColor);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a rectangle using parameters passed
// params:CPrintRegion*, position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Box(CPrintRegion* pRegion,int top,int left,int bottom,int right,int LineSize,UINT Fillflags,UINT PenFlags)
{
UINT OldColor,OldMode;
SaveState();
if(Fillflags != IGNORE_PARAM)
m_PrtDesc.uFillFlags=Fillflags;
if(PenFlags != IGNORE_PARAM)
m_PrtDesc.uPenFlags=PenFlags;
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;
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;
if(pRegion->FillColor > FILL_NONE)
OldMode=m_PrtDesc.pDC->SetBkMode(TRANSPARENT);
if(pRegion->FillColor > FILL_LTGRAY)
OldColor= SetColor(COLOR_WHITE);
ThePrinter.DrawRect(&m_PrtDesc,LineSize);
if(pRegion->FillColor > FILL_NONE)
m_PrtDesc.pDC->SetBkMode(OldMode);
if(pRegion->FillColor > FILL_LTGRAY)
SetColor(OldColor);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a rectangle using parameters passed
// params:CPrintRegion*, position, line size 1--x,flag is pen flags (see header)
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::Box(CPrintRegion* pRegion,double top,double left,double bottom,double right,int LineSize,UINT Fillflags,UINT PenFlags)
{
UINT OldColor,OldMode;
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+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;
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;
if(pRegion->FillColor > FILL_NONE)
OldMode=m_PrtDesc.pDC->SetBkMode(TRANSPARENT);
if(pRegion->FillColor > FILL_LTGRAY)
OldColor= SetColor(COLOR_WHITE);
ThePrinter.DrawRect(&m_PrtDesc,LineSize);
if(pRegion->FillColor > FILL_NONE)
m_PrtDesc.pDC->SetBkMode(OldMode);
if(pRegion->FillColor > FILL_LTGRAY)
SetColor(OldColor);
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a checkbox using parameters passed
// params:
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::CheckBox(LPCSTR Caption,BOOL Data,double top,double left,int FontSize,int Direction,int LineSize,UINT FillFlag,UINT PrintFlags)
{
ConvertPosition(top,left);
CheckBox(Caption,Data,(int) top,(int)left,FontSize,Direction,LineSize,FillFlag,PrintFlags);
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a checkbox using parameters passed
// params:
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::CheckBox(LPCSTR Caption,BOOL Data,int top,int left,int FontSize,int Direction,int LineSize,UINT FillFlag,UINT PrintFlags)
{
SaveState();
if(Direction==LABEL_LEFT)
{
Print(top,left,PrintFlags,FontSize,Caption);
left=(int)GetNextLogicalColumn(FALSE,TRUE);
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
if(Data)
{
if(FillFlag!= FILL_NONE)
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize,FillFlag);
else
{
Line(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
Line(top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left,top,left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
}
}
}
else
{
Print(top,left+(2*ConvertToMappedUnits(FontSize/72.0,HORZRES)),PrintFlags,FontSize,Caption);
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
if(Data)
{
if(FillFlag!= FILL_NONE)
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize,FillFlag);
else
{
Line(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
Line(top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left,top,left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
}
}
}
RestoreState();
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a checkbox using parameters passed
// params:
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::CheckBox(CPrintRegion* pRegion,LPCSTR Caption,BOOL Data,double top,double left,int FontSize,int Direction,int LineSize,UINT FillFlag,UINT PrintFlags)
{
ConvertPosition(top,left);
CheckBox(pRegion,Caption,Data,(int) top,(int)left,FontSize,Direction,LineSize,FillFlag,PrintFlags);
}
////////////////////////////////////////////////////////////////////////////
// Desc: Draw a checkbox using parameters passed
// params:
// Returns:
///////////////////////////////////////////////////////////////////////////
void CPage::CheckBox(CPrintRegion* pRegion,LPCSTR Caption,BOOL Data,int top,int left,int FontSize,int Direction,int LineSize,UINT FillFlag,UINT PrintFlags)
{
UINT OldColor,OldMode;
SaveState();
if(pRegion->FillColor > FILL_NONE)
OldMode=m_PrtDesc.pDC->SetBkMode(TRANSPARENT);
if(pRegion->FillColor > FILL_LTGRAY)
OldColor= SetColor(COLOR_WHITE);
m_PrtDesc.rc.bottom=pRegion->bottom;
m_PrtDesc.rc.right=pRegion->right;
m_PrtDesc.rc.left=pRegion->FirstX;
top+=pRegion->FirstY;
left+=pRegion->FirstX;
if(Direction==LABEL_LEFT)
{
Print(top,left,PrintFlags,FontSize,Caption);
left=(int)GetNextLogicalColumn(FALSE,TRUE);
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
if(Data)
{
if(FillFlag!= FILL_NONE)
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize,FillFlag);
else
{
Line(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
Line(top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left,top,left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
}
}
}
else
{
Print(top,left+(2*ConvertToMappedUnits(FontSize/72.0,HORZRES)),PrintFlags,FontSize,Caption);
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
if(Data)
{
if(FillFlag!= FILL_NONE)
Box(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize,FillFlag);
else
{
Line(top,left,top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
Line(top+ConvertToMappedUnits(FontSize/72.0,VERTRES),left,top,left+ConvertToMappedUnits(FontSize/72.0,HORZRES),LineSize);
}
}
}
if(pRegion->FillColor > FILL_NONE)
m_PrtDesc.pDC->SetBkMode(OldMode);
if(pRegion->FillColor > FILL_LTGRAY)
SetColor(OldColor);
RestoreState();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -