VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#进入MapX二次开发之图纸缩放操作的实现

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  我们知道,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中的缩放、自定义缩放等功能了。 



相关教程