亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? drawdlg.cpp

?? 數據庫管理程序
?? CPP
字號:
// DrawDlg.cpp: implementation of the CDrawDlg class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "a1.h"
#include "DrawDlg.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDrawDlg::CDrawDlg()
{
	m_iMinPages=1;
	m_pOldFont=NULL;
	m_pGeneralFont=	new CFont;
	m_pHeadFont=new CFont;	//字高==1/3 inch
	m_pFootFont=new CFont;	//字高==1/6 inch
	m_iFontHeight=0;		//字高==1/6 inch
	m_iLinesPage=0;		//可容納的行數(包括頁眉,頁腳)
	m_iLinesTotal=0;		//頁眉占兩行
	m_iLineHeight=0;		//單元格高==1/3 inch
	m_iMaxPages=0;
	m_iLeftMargin=0;		//左邊距
	m_iRightMargin=0;		//右邊距
	m_rangePageItems=NULL;

	m_nColumns=0;			//列數
	m_iHaveColumnsTitle=1; //是否每頁有列標題
	m_nSmallTilte=0;		//小標題的行數例如:日期,編號......
	m_pstrColumnTitle=NULL;	//每列標題
	m_piCharsColumns=NULL;//每列最大的字符數
	m_piWidthColumns=NULL;//每列寬度
	m_iTitleLines=2;		//標題占的行數
	m_iFootLines=1;			//頁腳占的行數
}

CDrawDlg::~CDrawDlg()
{
	delete [] m_rangePageItems;
	delete [] m_pstrColumnTitle;
	delete [] m_piCharsColumns;
	delete [] m_piWidthColumns;
	delete m_pGeneralFont;
	delete m_pHeadFont;
	delete m_pFootFont;
	m_pGeneralFont=NULL;
	m_pHeadFont=NULL;	
	m_pFootFont=NULL;	

	m_rangePageItems=NULL;	
	m_pstrColumnTitle=NULL;	//每列標題
	m_piCharsColumns=NULL;	//每列最大的字符數
	m_piWidthColumns=NULL;	//每列寬度
}

void CDrawDlg::PrintPageFooter(CDC* pDC, CPrintInfo* pInfo)
{
	CString str;
	int a=-pInfo->m_rectDraw.Height();
	CString s;
	int m_nPage=pInfo->m_nCurPage;

	if(pInfo->m_bPreview)
	{
		pDC->MoveTo(pInfo->m_rectDraw.left,		pInfo->m_rectDraw.top);
		pDC->LineTo(pInfo->m_rectDraw.left,		pInfo->m_rectDraw.bottom);
		pDC->LineTo(pInfo->m_rectDraw.right,	pInfo->m_rectDraw.bottom);
		pDC->LineTo(pInfo->m_rectDraw.right,	pInfo->m_rectDraw.top);
		pDC->LineTo(pInfo->m_rectDraw.left,		pInfo->m_rectDraw.top);	
	}
	str.Format("Page %d", m_nPage);
	CSize size = pDC->GetTextExtent(str);
	pDC->TextOut(pInfo->m_rectDraw.right - size.cx-this->m_iLineHeight,
		pInfo->m_rectDraw.bottom-m_iLineHeight*3/4,str); // right-justified*/
}
//DEL void CDrawDlg::OnEndPrintPreview(CDC *pDC, CPrintInfo *pInfo, POINT point, CPreView *pView)
//DEL {
//DEL 	m_pGeneralFont->Detach();
//DEL 	m_pHeadFont->Detach();//Courier New
//DEL 	pDC->SelectObject(m_pOldFont);	
//DEL 	delete [] this->m_rangePageItems;
//DEL 	m_rangePageItems=NULL;
//DEL }

//DEL void CDrawDlg::OnEndPrinting(CDC *pDC, CPrintInfo *pInfo)
//DEL {
//DEL 
//DEL 	m_pGeneralFont->Detach();
//DEL 	m_pHeadFont->Detach();//Courier New
//DEL 	pDC->SelectObject(m_pOldFont);	
//DEL 	delete [] this->m_rangePageItems;
//DEL 	m_rangePageItems=NULL;
//DEL }

long CDrawDlg::CalcUnitWidth()
{
	CListCtrl* m_pList=this->GetListCtrl();
	int i;
	int temp;
	for(i=0;i<m_nColumns;i++)
	{
		this->m_piCharsColumns[i]=2;
	}
	//計算每列的最大字符數;ASCII
	for(i=0;i<this->m_nColumns;i++)
	{
		for(int j=0;j<m_pList->GetItemCount();j++)
		{
			temp=m_pList->GetItemText(j,i).GetLength();
			if(m_piCharsColumns[i]<temp)
				this->m_piCharsColumns[i]=temp;
		}
	}
	if(this->m_iHaveColumnsTitle)
	{
		for(i=0;i<m_nColumns;i++)
		{
			temp=m_pstrColumnTitle[i].GetLength();
			if(m_piCharsColumns[i]<temp)
				this->m_piCharsColumns[i]=temp;
		}
	}
/*
#ifdef _DEBUG
	for(int k=0;k<6;k++)
	afxDump<<"\n m_iCharsColumns["<<k<<"]"<<m_iCharsColumns[k];
#endif
	*/
	long total=0;
		for(i=0;i<this->m_nColumns;i++)total+=this->m_piCharsColumns[i];

	return 	total;
}

void CDrawDlg::DrawListItems(CDC*pDC,int iCurPage,CPoint ptLeftCurPos,CPoint ptRightCurPos,CListCtrl *m_pList)
{
	iCurPage-=this->m_iMinPages;
	CPoint t1Unit=ptLeftCurPos;	//劃線的起始點
	CPoint t2Unit=ptRightCurPos;
	int i;
	if(this->m_rangePageItems[iCurPage].cy-m_rangePageItems[iCurPage].cx+m_iHaveColumnsTitle<0)return;
	for(i=this->m_rangePageItems[iCurPage].cx-this->m_iHaveColumnsTitle;i<=this->m_rangePageItems[iCurPage].cy;i++)
	{
		pDC->MoveTo(t1Unit);
		pDC->LineTo(t2Unit);
		t1Unit.Offset(0,this->m_iLineHeight);
		t2Unit.Offset(0,this->m_iLineHeight);
	}
	pDC->MoveTo(t1Unit);
	pDC->LineTo(t2Unit);

	t2Unit=ptLeftCurPos;
	for(i=0;i<this->m_nColumns+1;i++)
	{
		pDC->MoveTo(t1Unit);
		pDC->LineTo(t2Unit);
		t1Unit.Offset(this->m_piWidthColumns[i],0);
		t2Unit.Offset(this->m_piWidthColumns[i],0);	
	}

	CPoint tLeftTopFont=ptLeftCurPos;	//寫字的起始點
	tLeftTopFont.Offset(m_iLineHeight/4,this->m_iLineHeight/4);
	CPoint tLeftTopFont2=tLeftTopFont;

	bool nocolumntitle=true;
	for(i=this->m_rangePageItems[iCurPage].cx-m_iHaveColumnsTitle;i<=this->m_rangePageItems[iCurPage].cy;i++)
	{
		for(int j=0;j<m_nColumns;j++)
		{
			if(m_iHaveColumnsTitle&&nocolumntitle)
			{
				pDC->TextOut(tLeftTopFont.x,tLeftTopFont.y,this->m_pstrColumnTitle[j]);
				if(j==m_nColumns-1)nocolumntitle=false;
			}
			else
			{
				pDC->TextOut(tLeftTopFont.x,tLeftTopFont.y,m_pList->GetItemText(i,j));
			}
			tLeftTopFont.Offset(m_piWidthColumns[j],0);
		}
			tLeftTopFont=tLeftTopFont2;
			tLeftTopFont.Offset(0,this->m_iLineHeight);
			tLeftTopFont2=tLeftTopFont;
	}
}

void CDrawDlg::PrintPageHeader(CDC *pDC, CPrintInfo *pInfo, CString header)
{
	CFont*			pOldFont;
	pOldFont = (CFont*) (pDC->SelectObject(this->m_pHeadFont)); 	
	long w=pInfo->m_rectDraw.Width();
	CSize size = pDC->GetTextExtent(header);

	long pos=(w-size.cx)/2;
	pDC->TextOut(pos,this->m_iLineHeight/2,header);
	pDC->SelectObject(pOldFont);

}

bool CDrawDlg::InitData(CDC *pDC, CPrintInfo *pInfo, CListCtrl *m_list)
{
	int xPix=pDC->GetDeviceCaps(HORZRES);
	int yPix=pDC->GetDeviceCaps(VERTRES);
//	int xpixperi=pDC->GetDeviceCaps(LOGPIXELSX);
	int ypixperi=pDC->GetDeviceCaps(LOGPIXELSY);

	return this->InitData(xPix,yPix,ypixperi,pDC,pInfo,m_list);
}
void CDrawDlg::PaintDlg(CDC *pDC,CPrintInfo* pInfo)
{
	int ypixperi=pDC->GetDeviceCaps(LOGPIXELSY);

	int i=0;
	
	for(int Page=pInfo->GetMinPage();Page<=pInfo->GetMaxPage();Page++,i++)
	{
		pInfo->m_nCurPage=Page;
		pDC->SetWindowOrg(0,-i*(pInfo->m_rectDraw.bottom));
		this->PrintPageHeader(pDC,pInfo);
		PrintDlg(pDC,pInfo);
		this->PrintPageFooter(pDC,pInfo);
	}
}

void CDrawDlg::OnBeginPrinting(CDC *pDC, CPrintInfo *pInfo)
{
	CDC	m_dcPrint;
	m_dcPrint.Attach(pInfo->m_pPD->m_pd.hDC);
	this->InitData(&m_dcPrint,pInfo,this->GetListCtrl());
	m_dcPrint.Detach();
}



bool CDrawDlg::InitData(int xPix,int yPix, int ypixperi,CDC *pDC,  CPrintInfo *pInfo, CListCtrl *m_list)
{
	this->m_iLineHeight=ypixperi/3;
	this->m_iFontHeight=ypixperi/6;
	m_iLeftMargin=ypixperi/6;		//左邊距
	m_iRightMargin=ypixperi/6;		//右邊距
	int width=xPix-m_iLeftMargin-m_iRightMargin;
	this->m_iLinesPage=yPix/m_iLineHeight;
	this->m_iLinesTotal=m_list->GetItemCount();//items;行數
	//計算總頁數的公式:
//每頁都有標題2和頁腳1,可能還有列標題,小標題
//m_iMaxPages*m_iLinesPage>m_iLinesTotal+m_iMaxPages*(this->m_bHaveColumnsTitle+2+1);

	int iExtra=m_iTitleLines+m_iFootLines;
	if(m_iLinesPage<4)
	{
		AfxMessageBox("紙太小了");
		pInfo->SetMaxPage(0);
		pInfo->SetMinPage(1);
		
		return false;
	}
	m_iMaxPages=1;
	while(m_iMaxPages*(m_iLinesPage-iExtra-m_iHaveColumnsTitle)<m_iLinesTotal+this->m_nSmallTilte)
		this->m_iMaxPages++;

	pInfo->SetMaxPage(m_iMaxPages+m_iMinPages-1);
	pInfo->SetMinPage(m_iMinPages);

	delete [] m_rangePageItems;
	m_rangePageItems=NULL;
	m_rangePageItems=new CSize[m_iMaxPages];
	if(m_iMaxPages==1)
	{
	m_rangePageItems[0].cx=0;
	m_rangePageItems[0].cy=m_iLinesTotal-1;//
	}
	else
	{
	m_rangePageItems[0].cx=0;
	m_rangePageItems[0].cy=m_iLinesPage-iExtra-m_iHaveColumnsTitle-this->m_nSmallTilte-1;
		for(int i=1;i<m_iMaxPages-1;i++)
		{
			m_rangePageItems[i].cx=(m_iLinesPage-iExtra-m_iHaveColumnsTitle)*i-m_nSmallTilte;
			m_rangePageItems[i].cy=m_rangePageItems[i].cx+m_iLinesPage-iExtra-m_iHaveColumnsTitle-1;
		}
	m_rangePageItems[m_iMaxPages-1].cx=(m_iLinesPage-iExtra-m_iHaveColumnsTitle)*i-m_nSmallTilte;
	m_rangePageItems[m_iMaxPages-1].cy=m_iLinesTotal-1;
	}

	int total=0;int j;
	for(j=0;j<this->m_nColumns;j++)total+=this->m_piCharsColumns[j];

	for(j=0;j<m_nColumns;j++)
	{
		this->m_piWidthColumns[j]=MulDiv(width,m_piCharsColumns[j],total);
	}
/*

#ifdef _DEBUG
	afxDump<<"\n-----------------------------OnBeginPrinting信息-------------";
	afxDump<<"\n xPix = "<<xPix;
	afxDump<<"\n yPix = "<<yPix;
	afxDump<<"\n ypixperi = "<<ypixperi;
	afxDump<<"\n m_iLineHeight = "<<m_iLineHeight;
	afxDump<<"\n m_iFontHeight = "<<m_iFontHeight;
	afxDump<<"\n m_iLinesPage = "<<m_iLinesPage;
	afxDump<<"\n m_iLinesTotal = "<<m_iLinesTotal;
	afxDump<<"\n m_iMaxPages = "<<m_iMaxPages;

	for(int h=0;h<m_iMaxPages;h++)
	{
		afxDump<<"\n m_rangePageItems["<<h<<"] ="<<m_rangePageItems[h];
	}
	for(int f=0;f<m_nColumns;f++)
		afxDump<<"\n m_piWidthColumns["<<f<<"] ="<<m_piWidthColumns[f];

	afxDump<<"\n-------------------------------------------------------------";

#endif
*/
//確定每頁內容

	m_pGeneralFont->DeleteObject();
	m_pGeneralFont->CreateFont(-m_iFontHeight, 0, 0, 0, 400, FALSE, FALSE,
	                0,GB2312_CHARSET , OUT_DEFAULT_PRECIS,//ANSI_CHARSET
	                CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
	                 VARIABLE_PITCH |FF_SCRIPT , "楷體_GB2312");	//DEFAULT_PITCH FF_MODERN

	m_pHeadFont->DeleteObject();
	m_pHeadFont->CreateFont(-m_iFontHeight*2, 0, 0, 0, 400, FALSE, FALSE,
	                0,GB2312_CHARSET , OUT_DEFAULT_PRECIS,//ANSI_CHARSET
	                CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
	                 VARIABLE_PITCH | FF_SCRIPT, "楷體_GB2312");//DEFAULT_PITCH FF_MODERN

return true;
}

int CDrawDlg::GetMaxPages() const
{
return m_iMaxPages;
}

int CDrawDlg::GetTotalChars() const
{
	int total=0;
		for(int i=0;i<this->m_nColumns;i++)total+=this->m_piCharsColumns[i];

	return 	total;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美伦理视频网站| 欧美精品日日鲁夜夜添| 日韩欧美国产小视频| 天堂av在线一区| 欧美日韩精品系列| 男人的天堂久久精品| 欧美成人一区二区三区| 高清不卡一二三区| 亚洲精品国产一区二区精华液 | 日本久久一区二区三区| 亚洲欧美视频在线观看视频| 成人av一区二区三区| 一区二区三国产精华液| 精品噜噜噜噜久久久久久久久试看 | 亚洲久草在线视频| 欧美日韩国产精品成人| 国产在线精品免费| 亚洲国产一区二区在线播放| 日韩免费观看高清完整版 | 一区二区三区视频在线看| 在线免费观看成人短视频| 美腿丝袜亚洲三区| 亚洲精品国久久99热| 日本一区二区三区电影| 国产精品高潮久久久久无| 国产精品一区二区你懂的| 99精品视频一区| 亚洲第一福利视频在线| 99久久精品国产一区| 欧美性大战久久| 欧美激情一区二区三区四区| 欧美三级午夜理伦三级中视频| 国内精品第一页| 免费成人在线观看| 日韩精品电影在线| 亚洲bt欧美bt精品777| 亚洲猫色日本管| 国产精品福利影院| 1024精品合集| 亚洲日本在线a| 国产欧美日韩精品a在线观看| 91精品国产综合久久久久久| 欧美午夜精品电影| 日本大香伊一区二区三区| 波多野结衣欧美| 91小视频免费观看| 欧美久久高跟鞋激| 日韩欧美亚洲国产精品字幕久久久| 在线播放91灌醉迷j高跟美女| 9191国产精品| 中文字幕免费不卡| 一区二区三区久久久| 日本成人中文字幕| 成人精品小蝌蚪| 91精品国产综合久久久久久久| 精品国产一区二区三区忘忧草| 精品日韩在线观看| 亚洲欧洲在线观看av| 日本三级韩国三级欧美三级| 国产综合色产在线精品| 色丁香久综合在线久综合在线观看 | 国产主播一区二区| 一本大道av伊人久久综合| 精品91自产拍在线观看一区| 亚洲自拍与偷拍| 91美女精品福利| 欧美国产日韩在线观看| 国产一区二区不卡老阿姨| 欧美日韩一本到| 亚洲一区欧美一区| 波多野结衣在线一区| 国产女同互慰高潮91漫画| 日本va欧美va瓶| 在线播放91灌醉迷j高跟美女| 亚洲欧洲av在线| 91污在线观看| 亚洲欧美激情在线| 91丨porny丨蝌蚪视频| 综合亚洲深深色噜噜狠狠网站| 国产一区二区三区观看| 久久免费偷拍视频| 成人午夜视频福利| 一区二区三区中文字幕精品精品| 不卡的电视剧免费网站有什么| 欧美精品一区二区三区一线天视频 | 亚洲国产精品自拍| 日韩影院在线观看| 一本大道av伊人久久综合| 午夜激情综合网| 国产精品久线观看视频| 天堂蜜桃一区二区三区| 成人性生交大片免费看中文网站| 国产亚洲福利社区一区| 一本大道综合伊人精品热热| 亚洲女人的天堂| 精品欧美乱码久久久久久1区2区 | 91精品国产综合久久精品app| 一区二区三区不卡在线观看| a亚洲天堂av| 免费三级欧美电影| 亚洲美女视频在线观看| 亚洲精品一区二区三区精华液| 91久久精品日日躁夜夜躁欧美| 日韩高清不卡一区| 亚洲国产日韩一区二区| 日韩一二三区视频| 欧美中文字幕亚洲一区二区va在线 | 国产伦精品一区二区三区在线观看| 97aⅴ精品视频一二三区| 国产精品高潮久久久久无| 色噜噜狠狠成人中文综合| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲小说春色综合另类电影| 欧美人与性动xxxx| 国产在线播放一区三区四| 精品国产91久久久久久久妲己| 日韩不卡在线观看日韩不卡视频| 久久精品在线免费观看| 91精品婷婷国产综合久久性色| 国产99久久久国产精品潘金| 无码av免费一区二区三区试看| 国产精品久久午夜| 精品美女一区二区三区| 欧美麻豆精品久久久久久| 日本乱码高清不卡字幕| 欧美日韩一区成人| 欧美午夜精品一区| 欧美一卡二卡三卡| 日韩一区二区麻豆国产| 欧美精品日韩精品| 久久精品亚洲国产奇米99| 国产精品久久久久久久久晋中| 国产精品久久久久毛片软件| 国产精品无圣光一区二区| 中文字幕不卡在线观看| 亚洲日本在线看| 另类小说一区二区三区| 日本精品免费观看高清观看| 欧美人与性动xxxx| 精品久久人人做人人爱| 久久久国产一区二区三区四区小说| 精品对白一区国产伦| 一区二区欧美视频| av电影天堂一区二区在线观看| 欧美亚男人的天堂| 久久精品亚洲麻豆av一区二区 | 国产欧美一区视频| 亚洲自拍偷拍欧美| 国产99久久久国产精品潘金| 欧美色成人综合| 中文字幕亚洲一区二区av在线| 亚洲成人激情自拍| 成人av电影在线| 国产亚洲精品精华液| 久久99精品国产麻豆不卡| 欧美日韩视频在线第一区| 国产精品每日更新| 国产毛片一区二区| wwww国产精品欧美| 美脚の诱脚舐め脚责91 | 在线看国产日韩| 亚洲日本在线视频观看| 高清国产午夜精品久久久久久| 欧美精品高清视频| 日本免费新一区视频| 欧美高清性hdvideosex| 日韩专区欧美专区| 欧美一级艳片视频免费观看| 三级不卡在线观看| 精品少妇一区二区三区视频免付费 | 欧美人狂配大交3d怪物一区| 亚洲婷婷在线视频| 欧美色综合影院| 免费观看成人av| 国产精品欧美精品| 欧美日韩一区二区在线视频| 亚洲国产精品欧美一二99| 7777精品伊人久久久大香线蕉超级流畅 | 91免费版在线| 美国三级日本三级久久99| 国产精品毛片久久久久久| 欧美日韩精品久久久| 国产精品一区二区你懂的| 亚洲手机成人高清视频| 日韩一区二区免费在线观看| 国产成人av一区二区三区在线 | 一本大道久久a久久综合| 美女一区二区久久| 一区二区三区在线视频观看| 欧美一区日本一区韩国一区| 国产成人午夜精品影院观看视频| 亚洲高清视频在线| 日韩伦理av电影| 久久久久久黄色| 欧美精品在线视频| 一本到不卡精品视频在线观看| 成人免费视频视频在线观看免费 | 一区二区成人在线视频 | 欧美影视一区在线| 99v久久综合狠狠综合久久|