WEB开发网
开发学院软件开发C语言 C#进行Visio二次开发之动态仿真实现 阅读

C#进行Visio二次开发之动态仿真实现

 2010-09-30 22:45:37 来源:WEB开发网   
核心提示: 要在Visio图纸上实现如上图的动画效果,其中最重要的奥秘是使用下面代码:System.Windows.Forms.Application.DoEvents();Thread.Sleep(50);很多情况下,C#进行Visio二次开发之动态仿真实现(2),我们可能对这个DoEvents函数的功能

要在Visio图纸上实现如上图的动画效果,其中最重要的奥秘是使用下面代码:

 System.Windows.Forms.Application.DoEvents();
 Thread.Sleep(50);

很多情况下,我们可能对这个DoEvents函数的功能不是很熟悉,其实我们可以理解为主动触发事件,让消息流提前进入处理流程,这样我们就能够看到在Visio图纸上的图形更新效果了。

整个图形分析的过程,分为3个步骤:

1)进行简单的拓扑分析,把设备周边的关系保持到数据库进行分析。

2)根据数据库结构,对设备关系进行分析,获得拓扑网络的设备层次结构列表

3)根据不同的设备类型和图纸当前状态,对设备进行适当的绘制和动画仿真展示。

大致的代码如下所示:

       private void PowerCutAnalyze(Visio.Application app)
        {
            #region 获取操作设备和判断是否图纸有设备
            Visio.Shape shapeSelected = null;
            try
            {
                Visio.Window wndVisio = app.ActiveWindow;
                if (wndVisio.Selection.Count == 1)
                {
                    shapeSelected = wndVisio.Selection.get_Item16(1);
                }
            }
            catch { ; }
            if (!VisioUtility.HasShapeInWindow(VisWindow))
            {
                MessageUtil.ShowWarning("图纸上没有设备, 不能执行该操作");
                return;
            } 
            #endregion
            app.UndoEnabled = false;
            List<string> list = new List<string>();
            string message = "";
            list = powerCutBLL.RunPowerCutAnalyzing(app, shapeSelected, ref message);
            app.UndoEnabled = true;
            if (message != "")
            {
                MessageUtil.ShowError(message);
                return;
            }
            if (list.Count > 0)
            {
                AnalyzeShapeIdList.Clear();
                foreach (string shapeStrID in list)
                {
                    AnalyzeShapeIdList.Add(Convert.ToInt32(shapeStrID));
                }
                RunColorChanging(app);
            }
            else
            {
                MessageUtil.ShowWarning("请检查线路是否连接正确。");
            } 
        }

上一页  1 2 3 4  下一页

Tags:进行 Visio 二次

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接