gis软件设计实验报告(3)

2019-04-09 11:04

《GS软件设计》实习报告

m_array.Clear(); }

public int Count {

get {

return m_array.Count; } }

public IMap get_Item(int Index) {

if (Index > m_array.Count | Index < 0) throw new

Exception(\

return m_array[Index] as IMap; }

public void Remove(IMap Map) {

m_array.Remove(Map); }

public IMap Create() {

IMap newMap = new MapClass(); m_array.Add(newMap);

return newMap; }

public void Add(IMap Map) {

if (Map == null)

throw new Exception(\initialized!\

m_array.Add(Map); }

#endregion } }

两种视图的同步

在 3bxwMap.cs 中添加成员变量,即同步类对象:

private ControlsSynchronizer m_controlsSynchronizer = null;

在 Form1_Load 函数中进行初始化工作:

controls synchronization calss

m_controlsSynchronizer = new ControlsSynchronizer(m_mapControl, m_pageLayoutControl);

m_controlsSynchronizer.BindControls(true);

m_controlsSynchronizer.AddFrameworkControl(axToolbarControl1.Object); m_controlsSynchronizer.AddFrameworkControl(this.axTOCControl1.Object); OpenNewMapDocument openMapDoc = new

OpenNewMapDocument(m_controlsSynchronizer);

axToolbarControl1.AddItem(openMapDoc, -1, 0, false, -1, esriCommandStyles.esriCommandStyleIconOnly);

10

《GS软件设计》实习报告

打印功能

o. 添加打印菜单项。双击菜单项添加响应函数:

IHookHelper layout_hookHelper = new HookHelperClass(); layout_hookHelper.Hook = this.axPageLayoutControl1.Object; PrintPageLayoutForm PPLFrm =newPrintPageLayoutForm(layout_hookHelper); PPLFrm.ShowDialog();

新建Windows窗体:

代码如下: using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;

using System.Text;

using System.Windows.Forms; using ESRI.ArcGIS.Output; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.Carto; namespace GIS {

public partial class PrintPageLayoutForm : Form {

public PrintPageLayoutForm(IHookHelper hookHelper) {

InitializeComponent();

axPageLayoutControl1.PageLayout = hookHelper.PageLayout; }

private void cmdPrint_Click(object sender, System.EventArgs e) {

if (axPageLayoutControl1.Printer != null) {

axPageLayoutControl1.MousePointer =

esriControlsMousePointer.esriPointerHourglass; IPrinter printer = axPageLayoutControl1.Printer; if (printer.Paper.Orientation !=axPageLayoutControl1.Page.Orientation) {

printer.Paper.Orientation = axPageLayoutControl1.Page.Orientation; UpdatePrintingDisplay(); }

axPageLayoutControl1.PrintPageLayout(Convert.ToInt16(txbStartPage.Tex

11

《GS软件设计》实习报告

t),Convert.ToInt16(txbEndPage.Text),Convert.ToDouble(txbOverlap.Text));

axPageLayoutControl1.MousePointer =

esriControlsMousePointer.esriPointerDefault;

MessageBox.Show(\打印图片保存成功!\保存\MessageBoxButtons.OK);

this.Close(); } }

private void PrintPageLayoutForm_Load(object sender, EventArgs e) {

cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.Items.Add(\ cboPageSize.SelectedIndex = 7;

cboPageToPrinterMapping.Items.Add(\ cboPageToPrinterMapping.Items.Add(\ cboPageToPrinterMapping.Items.Add(\ cboPageToPrinterMapping.SelectedIndex = 1; optPortrait.Checked = true; EnableOrientation(true); UpdatePrintingDisplay(); }

private void UpdatePrintPageDisplay() {

short iPageCount =

axPageLayoutControl1.get_PrinterPageCount(Convert.ToDouble(txbOverlap.Text));

lblPageCount.Text = iPageCount.ToString();

int iPageStart = Convert.ToInt32(txbStartPage.Text); int iPageEnd = Convert.ToInt32(txbEndPage.Text);

12

《GS软件设计》实习报告

if ((iPageStart < 1) | (iPageStart > iPageCount)) {

txbStartPage.Text = \ }

if ((iPageEnd < 1) | (iPageEnd > iPageCount)) {

txbEndPage.Text = iPageCount.ToString(); } }

private void UpdatePrintingDisplay() {

if (axPageLayoutControl1.Printer != null) {

IPrinter printer = axPageLayoutControl1.Printer;

if (printer.Paper.Orientation == 1) {

lblPrinterOrientation.Text = \横向\ } else {

lblPrinterOrientation.Text = \纵向\ }

lblPrinterName.Text = printer.Paper.PrinterName; double dWidth; double dheight;

printer.Paper.QueryPaperSize(out dWidth, out dheight); lblPrinterSize.Text = dWidth.ToString(\+ \by \ } }

private void txbOverlap_Leave(object sender, System.EventArgs e)

{

UpdatePrintPageDisplay(); UpdatePrintingDisplay();

} private void optLandscape_Click(object sender, System.EventArgs e) {

if (optLandscape.Checked == true) {

13

《GS软件设计》实习报告

if (axPageLayoutControl1.Page.FormID != esriPageFormID.esriPageFormSameAsPrinter) {

axPageLayoutControl1.Page.Orientation = 2; }

UpdatePrintPageDisplay(); UpdatePrintingDisplay(); } }

private void optPortrait_Click(object sender, System.EventArgs e)

{

if (optPortrait.Checked == true)

{ if (axPageLayoutControl1.Page.FormID != esriPageFormID.esriPageFormSameAsPrinter) {

axPageLayoutControl1.Page.Orientation = 1; }

UpdatePrintPageDisplay(); UpdatePrintingDisplay(); } }

private void cboPageSize_SelectedIndexChanged(object sender, EventArgs e)

{ if (cboPageSize.SelectedIndex == 13) EnableOrientation(false); else

EnableOrientation(true);

axPageLayoutControl1.Page.FormID = (esriPageFormID)cboPageSize.SelectedIndex; UpdatePrintPageDisplay(); UpdatePrintingDisplay(); }

private void EnableOrientation(bool b) {

optPortrait.Enabled = b; optLandscape.Enabled = b; }

private void cmdPrint_Click_1(object sender, EventArgs e)

{

14


gis软件设计实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:城市轨道交通车辆转向架故障检修

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: