C#进行Visio二次开发之图纸缩放操作的实现

简介:
我们知道,Visio菜单【视图】中有一个缩放的菜单项目,如下所示,选择响应的选项会对图纸进行缩放。
Visio_Zoom1.jpg

另外,它的工具条中也有一个下拉列表框,除了可以选择现有的那些选项外,还可以输入自定义的值,达到自定义缩放比例的功能。
Visio_Zoom2.jpg

本文介绍如何使用C#和Visio的SDK函数,实现Visio中的图纸各种缩放操作。
首先我们建立一个缩放菜单项和一个各种缩放比例的子菜单项,如第一个图形所示;然后将所有的子菜单项的事件处理指向同一个函数,如下所示
None.gif          private   void  menu_View_Zoom_Click( object  sender, EventArgs e)
ExpandedBlockStart.gif        
{
InBlock.gif            ToolStripMenuItem item 
= (ToolStripMenuItem)sender;
InBlock.gif            SetZoom(item.Text);
ExpandedBlockEnd.gif        }
然后添加下拉列表框,如第二个图形所示,并添加它的处理函数。
None.gif          private   void  tsStandard_Zoom_KeyUp( object  sender, KeyEventArgs e)
ExpandedBlockStart.gif        
{
InBlock.gif            
if (e.KeyCode == Keys.Enter)
ExpandedSubBlockStart.gif            
{
InBlock.gif                SetZoom(tsStandard_Zoom.Text);
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }
接着我们实现SetZoom函数,该函数除了接收各种缩放比例外,还可以接收自定义的比例处理。
具体逻辑,看代码后就一目了然
None.gif          private   void  SetZoom( string  zoomText)
ExpandedBlockStart.gif        
{
InBlock.gif
            switch (zoomText)
ExpandedSubBlockStart.gif            
{
InBlock.gif                
case "400%":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdView400);
InBlock.gif                    
break;
InBlock.gif                
case "200%":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdView200);
InBlock.gif                    
break;
InBlock.gif                
case "150%":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdView150);
InBlock.gif                    
break;
InBlock.gif                
case "100%":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdView100);
InBlock.gif                    
break;
InBlock.gif                
case "75%":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdView75);
InBlock.gif                    
break;
InBlock.gif                
case "50%":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdView50);
InBlock.gif                    
break;
InBlock.gif                
case "上次":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdZoomLast);
InBlock.gif                    
break;
InBlock.gif                
case "宽度":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdZoomSingleTile);
InBlock.gif                    
break;
InBlock.gif                
case "":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdZoomPageWidth);
InBlock.gif                    
break;
InBlock.gif                
case "缩放dot.gif":
InBlock.gif                    VisApplication.DoCmd((
short)VisUICmds.visCmdViewCustom);
InBlock.gif                    
break;
InBlock.gif                
default:
InBlock.gif                    CustomedSize(zoomText);
InBlock.gif                    
break;
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

None.gif
None.gif        
private   void  CustomedSize( string  zoomText)
ExpandedBlockStart.gif        
{
InBlock.gif            
try
ExpandedSubBlockStart.gif            
{
InBlock.gif                
double zoomSize = Convert.ToDouble(zoomText.Replace("%"""));
InBlock.gif                
this.VisWindow.Zoom = zoomSize / 100;
InBlock.gif                
this.tsStandard_Zoom.Text = zoomSize + "%";
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch
ExpandedSubBlockStart.gif            
{ }
ExpandedBlockEnd.gif        }

这样就可以完整实现Visio中的缩放、自定义缩放等功能了。

本文转自博客园伍华聪的博客,原文链接:C#进行Visio二次开发之图纸缩放操作的实现,如需转载请自行联系原博主。



目录
相关文章
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
20 0
|
2月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
77 0
|
2月前
C#WinForm基础编程(二)
C#WinForm基础编程
58 0
|
2月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
62 0
|
4月前
|
数据采集 前端开发 C#
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
Twitter是全球最大的社交媒体平台之一,包含丰富的音频资源。用户可以在Twitter上发布、转发、评论和收听各种音频内容,如音乐、播客、新闻、故事等,直接从Twitter抓取音频数据并非易事,尤其是在考虑到可能的封锁和反爬虫机制。Twitter会对频繁访问的IP地址进行限制或封禁,以防止恶意爬虫的行为。因此,我们需要使用一些技术手段来规避这些障碍,确保稳定而高效的数据访问。
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
|
3月前
|
程序员 C#
深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。 要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项:
38 0