⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpage.cpp

📁 print for you as example.very nice
💻 CPP
📖 第 1 页 / 共 5 页
字号:
}	

////////////////////////////////////////////////////////////////////////////
//	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 + -