zoukankan      html  css  js  c++  java
  • C#进行Visio二次开发之图纸缩放操作的实现

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

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

    本文介绍如何使用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中的缩放、自定义缩放等功能了。
    主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    How To Mine Bitcoins 比特币挖矿
    Fear No More歌词
    我曾七次鄙视自己的灵魂
    固态硬盘降价,如何选择
    618好物推荐,路由器,手机电脑
    人机验证
    $this->request->post 和input 区别
    APP_DEBUG改成false上线之后发现:“页面错误!请稍后再试~
    Hide()方法不生效
    会声会影x7 每次安装均会提示:已安装这个产品的另一个版本
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/1230321.html
Copyright © 2011-2022 走看看