WEB开发网
开发学院软件开发VC VC++6.0下GIS打印输出控制的实现 阅读

VC++6.0下GIS打印输出控制的实现

 2008-11-14 19:37:04 来源:WEB开发网   
核心提示: 一、图幅尺寸与边距控制 生成图幅设置对话框类,设置对话框为CmapSetup,VC++6.0下GIS打印输出控制的实现(2),实现尺寸控制,void CBoundaryView::OnPrintMapsetup() //图幅设置(对话框参数){// TODO: Add your comma

一、图幅尺寸与边距控制

生成图幅设置对话框类,设置对话框为CmapSetup,实现尺寸控制。

void CBoundaryView::OnPrintMapsetup() //图幅设置(对话框参数)
{
// TODO: Add your command handler code here
CMapSetup mapsizesetup; //图幅设置(对话框参数)
//对话框初始化///////////////////////////
……………………………
/////////////////////////////////////////
mapsizesetup.DoModal();
map_wide=mapsizesetup.m_Page1.m_mapwide;
page_up=mapsizesetup.m_Page2.m_pageup;
page_left=mapsizesetup.m_Page2.m_pageleft;
}

根据图幅宽度计算图幅高度;

BOOL CBoundaryView::OnPreparePrinting(CPrintInfo* pInfo)
{
xwide=(int)(map_wide*10.0);//图幅尺寸(mm)
if(!print_selection)//全图打印
{
map_heigh=map_wide*((ymax-ymin)/(xmax-xmin));//(cm)
}
else if(print_selection)//选择区域打印
{ //计算图幅高度
map_heigh=map_wide*(print_y1-print_y2)/(print_x2-print_x1);//(cm)
}
yhigh=(int)(map_heigh*10.0);
return DoPreparePrinting(pInfo);
}

二、分页控制

分页方法为从左至右,从上到下;

void CBoundaryView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// 获取页面高、宽
mpageheight=pDC->GetDeviceCaps(VERTSIZE);//单位为毫米
mpagewidth=pDC->GetDeviceCaps(HORZSIZE);
xpage=mpagewidth;
ypage=mpageheight;
//计算打印页数
npagex=(int)xwide/xpage+(xwide>xpage*(int)(xwide/xpage));
npagey=(int)yhigh/ypage+(yhigh>ypage*(int)(yhigh/ypage));
npage=npagex*npagey;
pInfo->SetMinPage(1);
pInfo->SetMaxPage(npage);
}

上一页  1 2 3 4  下一页

Tags:VC GIS 打印

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接