程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#進行Visio二次開發之圖紙縮放操作的實現

C#進行Visio二次開發之圖紙縮放操作的實現

編輯:關於C#

我們知道,Visio菜單【視圖】中有一個縮放的菜單項目,如下所示,選擇響應的選項會對圖紙進行縮放。

另外,它的工具條中也有一個下拉列表框,除了可以選擇現有的那些選項外,還可以輸入自定義的值,達到自定義縮放比例的功能。

本文介紹如何使用C#和Visio的SDK函數,實現Visio中的圖紙各種縮放操作。首先我們建立一個縮放菜單項和一個各種縮放比例的子菜單項,如第一個圖形所示;然後將所有的子菜單項的事件處理指向同一個函數,如下所示

private void menu_View_Zoom_Click(object sender, EventArgs e)
   {
 ToolStripMenuItem item = (ToolStripMenuItem)sender;
  SetZoom(item.Text);
 }

然後添加下拉列表框,如第二個圖形所示,並添加它的處理函數。

private void tsStandard_Zoom_KeyUp(object sender, KeyEventArgs e)
  {
if (e.KeyCode == Keys.Enter)
 {
 SetZoom(tsStandard_Zoom.Text);
}
}

接著我們實現SetZoom函數,該函數除了接收各種縮放比例外,還可以接收自定義的比例處理。具體邏輯,看代碼後就一目了然

private void SetZoom(string zoomText)
{
switch (zoomText)
  {
case "400%":
VisApplication.DoCmd((short)VisUICmds.visCmdView400);
 break;
case "200%":
VisApplication.DoCmd((short)VisUICmds.visCmdView200);
break;
  case "150%":
VisApplication.DoCmd((short)VisUICmds.visCmdView150);
break;
case "100%":
VisApplication.DoCmd((short)VisUICmds.visCmdView100);
break;
case "75%":
VisApplication.DoCmd((short)VisUICmds.visCmdView75);
break;
case "50%":
 VisApplication.DoCmd((short)VisUICmds.visCmdView50);
break;
  case "上次":
VisApplication.DoCmd((short)VisUICmds.visCmdZoomLast);
break;
 case "寬度":
VisApplication.DoCmd((short)VisUICmds.visCmdZoomSingleTile);
 break;
  case "頁":
VisApplication.DoCmd((short)VisUICmds.visCmdZoomPageWidth);
break;
case "縮放":
 VisApplication.DoCmd((short)VisUICmds.visCmdViewCustom);
  break;
  default:
CustomedSize(zoomText);
  break;
  }
}
private void CustomedSize(string zoomText)
  {
  try
  {
  double zoomSize = Convert.ToDouble(zoomText.Replace("%", ""));
  this.VisWindow.Zoom = zoomSize / 100;
 this.tsStandard_Zoom.Text = zoomSize + "%";
   }
catch
  { }
}

這樣就可以完整實現Visio中的縮放、自定義縮放等功能了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved