xenogear

当知道了某样知识之后,就会发现其实什么都不知道

使用Visio 2003 Drawing Control开发应用(补1)

Visio的DrawingControl暴露出来很多事件,一般来说是够用了。可是有时候,我们还觉得这些事件不够用,比如说:
我们想在拖动某个形状时触发事件来处理,可是直接从drawingcontrol里面是没有这样的事件的,查了查也没有这样的事件。
于是,我可以这样做。
   Visio.Shape shape = this.axDrawingControl1.Window.Application.ActivePage.Shapes[1];
   shape.TextChanged +=new Microsoft.Office.Interop.Visio.EShape_TextChangedEventHandler(shape_TextChanged);
   shape.CellChanged +=new Microsoft.Office.Interop.Visio.EShape_CellChangedEventHandler(shape_CellChanged);

当然真正应用的时候,这个shape不能像我上面那样取,这里注册了两个事件,一个是该Shape的文本发生改变的事件,一个是Cell改变的事件,在事件处理中
  private void shape_CellChanged(Microsoft.Office.Interop.Visio.Cell Cell)
  {
   if(Cell.Name == "PinX" || Cell.Name == "PinY")
    MessageBox.Show("LocationChanged");
  }
这样,该Shape位置发生变化我们就可控了。

posted on 2004-10-18 15:31 什么都不知道 阅读(7847) 评论(124)  编辑 收藏 网摘

评论

#1楼  2005-01-05 14:31 zhaoxpi [未注册用户]

请教一个问题。急,谢谢!
我用c#+visio2003开发了一个机房管理软件,但是在客户机安装完成后(程序用到的visio drawing control控件已经打包进去了),需要visio的部分运行不了,发现只有在机器上安装了一整套visio软件后才可以运行我自己的软件。请问为什么?难道客户机上必须安装整套visio吗?   回复  引用    

#2楼 [楼主] 2005-01-05 19:26 什么都不知道      

是的,必须安装
我在该系列中的第一篇(?)中说过这个问题。必须安装visio2003才可以,而且必须安装.net可编程支持组件(typical安装不装)
这个安装可以用脚本写出silent installation的,所以你可以放在一个安装包内,具体你可以看我从前的文章   回复  引用  查看    

#3楼  2005-01-06 09:37 zhaoxpi [未注册用户]

好,谢谢   回复  引用    

#4楼  2005-01-06 11:47 afirst [未注册用户]

小弟正在研究c#开发visio2003的问题,可否给一些思路呢?   回复  引用    

#5楼  2005-01-06 11:48 afirst [未注册用户]

或者相关的文档,我在网上查找,实在太少了。
去电脑书店,很少有卖的。如果可以我告诉你信箱,谢谢了
  回复  引用    

#6楼 [楼主] 2005-01-06 18:42 什么都不知道      

visio 2003能实现的(比如绘图) + visio 2003不能实现的(比如和你的业务数据库打交道),而且你不想个性化visio 2003,是想单独开发个程序,就是用这个drawing control的目的
相关的文档包括msdn都很少,我这个系列应该算是最全的了,只是我没有多少时间把他写的很详细   回复  引用  查看    

#7楼  2005-01-06 23:34 zhaoxpi [未注册用户]

继续请教!谢谢!
我不想让用户使用visio自己提供的右键菜单,所以我自己创建了contextmenu,但是现在的问题是没办法扑捉到点击右键时的鼠标位置,因为drawing control内部的鼠标坐标没办法转换到winform的坐标。
请问有什么办法解决吗?   回复  引用    

#8楼 [楼主] 2005-01-07 18:16 什么都不知道      

   可以,比如下面你输入那个control的实例,然后是点坐标,就可以返回算完的坐标
private Point PageUnitsToPixels( ref AxMicrosoft.Office.Interop.VisOcx.AxDrawingControl axDrawingControl, double x,  double y)
{
 try
 {
  double vLeft, vTop, vWidth, vHeight;
  axDrawingControl.Window.GetViewRect( out vLeft, out vTop, out vWidth, out vHeight);
  // calculate position
  int xForm = (int) (axDrawingControl.Left + (axDrawingControl.Width/vWidth)*(x-vLeft));
  int yForm = (int) (axDrawingControl.Top + (axDrawingControl.Height/vHeight)*(vTop-y));
  return new Point( xForm, yForm );  
 }
 catch(Exception ex)
 {
  return new Point(0, 0);
 }
不过这个算法在使用visio的stencil窗口的情况下,有计算上的偏差,因为影响不是特别大,我就没有仔细研究了,应该可以实现精确定位
  回复  引用  查看    

#9楼  2005-01-10 11:23 zhaoxpi [未注册用户]

实现了,太谢谢了   回复  引用    

#10楼  2005-01-12 11:36 afirst [未注册用户]

可以给我一些你收集的文档吗?看到你的这些文章,感觉很不错,现在能够处理打开模具,增加图形,但是还有很多功能我做不到阿,我现在想利用visio2003开发电力线路图的示意图的功能,要和数据库联系在一起,自己用GDI+开发又没有时间。我真的想要一些实例或者文档。能给我吗?我的邮箱是:yuxin2526@163.com。或者你告诉我你的QQ,我上线找你可以吗?   回复  引用    

#11楼  2005-03-28 10:28 张风柱 [未注册用户]

我这有微软开发visio的全套源吗程序
visio针对数据库开发也有一套完整的源码
如果需要请留言
  回复  引用    

#12楼  2005-03-30 09:49 zxg [未注册用户]

我需要visio的全套源程序,请告知   回复  引用    

#13楼  2005-04-06 23:33 愿闻其详      

to 张风柱 :

我现在也在开始关注这方面的开发。你能给我一份吗?我想参考参考!
邮箱:kelisten2000@hotmail.com
谢谢!!!   回复  引用  查看    

#14楼  2005-04-15 10:00 虚心求教 [未注册用户]

我也想要一份~ 多谢!
mail: a_hao2001@sohu.com   回复  引用    

#15楼  2005-04-29 08:21 TO:张风柱 [未注册用户]

可以的话,麻烦你也发一份给我吧   回复  引用    

#16楼  2005-04-29 09:12 RE:TO:张风柱 [未注册用户]

加上我的地址地址 yanghqyy@yahoo.com.cn   回复  引用    

#17楼  2005-04-30 02:40 刀子 [未注册用户]

也请给我一份吧,谢谢 xiaodao@163.com   回复  引用    

#18楼  2005-05-25 16:40 小草 [未注册用户]

麻烦也给我一份
lymary@21cn.com
qq:171613781   回复  引用    

#19楼  2005-05-25 16:44 小草 [未注册用户]

不知道“什么都不知道”的系列文章在哪里?   回复  引用    

#20楼  2005-05-26 10:12 小草 [未注册用户]

谢谢“什么都不知道”给我邮件,不过我点击你的文章列表的时候,网页报错“您无权查看该网页”,请问怎样才能看到你的文章呢?   回复  引用    

#21楼  2005-05-26 10:15 小草 [未注册用户]

准确的说,是点击你给我的邮件的文章的连接地址“http://explorer.msn.com/lccn/”时报“您无权查看该网页”的错误。   回复  引用    

#22楼  2005-05-26 10:30 小草 [未注册用户]

找到一些了,太谢谢啦,要是按文章类容分类放在一起就好啦!   回复  引用    

#23楼  2005-05-26 17:22 小草 [未注册用户]

我想用C#和Visio 2003 Drawing Control做一个“图形化流程制作”程序,用SQL Server数据库,请问是否可行?如果可行,怎样将
流程图保存到数据库中,又怎样通过数据库显示流程图? 谢谢!
lymary@21cn.com
  回复  引用    

#24楼 [楼主] 2005-05-29 15:03 什么都不知道      

我原来的做法是,自定义流程信息和visio的图形文件同时存放在数据库中。只需要将它们关联起来就可以了。   回复  引用  查看    

#25楼  2005-05-30 09:17 小草 [未注册用户]

谢谢你的帮助,有启发。还要继续请教:数据库中流程信息记录要记录当前节点和连接节点,但是流程图中应当只输入当前节点信息,这个矛盾怎么处理呢?我实在不知道怎样将流程图转换为数据库记录,请指教!最好能给个实例。   回复  引用    

#26楼 [楼主] 2005-05-30 13:17 什么都不知道      

我给你说的详细一些:
首先你需要有你自己的数据结构来描述流程的信息,包括每个节点信息和相互的关联关系。
然后,你用visio来处理图形化流程配置。在visio的对象模型中,每个shape是可以记录一些额外信息的,我通常使用Data1,Data2,Data3这三个属性。
额外信息中记录自定义数据结构中节点的ID。
visio绘制完图形之后,根据visio的数据结构生成自定义的数据结构。然后将visio本身的数据文件单独保存,将自定义的数据结构放在数据库中。
外部有配置,用来配置图形文件和流程标识的关系。

需要注意的就是图形文件和数据之间的同步问题。   回复  引用  查看    

#27楼  2005-05-30 15:32 小草 [未注册用户]

谢谢你这么快答复我,没想到会遇到一位这么好的visio老师!。我试一下。   回复  引用    

#28楼  2005-06-13 11:07 wuxian      

请教一个问题。急,谢谢!
用C#+visio2003中的连线,我如何知道在用鼠标拖动线时是连接或断开Shape的连接?有没有事例代码.如有时线是连接上Shape的,在鼠标拖动线时如何不让线断开与Shape的连接.也就是说线不能悬空,必需要连接上一个Shape.我看了一下没有判断的事件,只有(ConnectionsAdded(),ConnectionsDelete())这两个事件,都是在连接上与断开连接后才触发的,能不能在正要连接与正要断开连接就触发的事件,或有没有其它的方法来处理?   回复  引用  查看    

#29楼 [楼主] 2005-06-13 11:41 什么都不知道      

这种情况下应该是没有事件的
我建议的做法是
在mousedown或者selectionchange一类的事件中判断如果选中的是连接线,记录下来连接线的id
然后在mouseup一类的事件中查找该连接线,然后判断该连接线的ToSheet以及ToPart之类的属性,来判断是否该连接线连接到了shape。   回复  引用  查看    

#30楼  2005-06-13 11:50 wuxian      

谢谢你这么快答复我,我试一下。
  回复  引用  查看    

#31楼  2005-06-15 09:53 wuxian      

请教一个问题。
Viso 中的工具栏中有一个"连接线工具",在点击了这外工具后,鼠标移动到窗口中鼠标的形状就变了.在移动到连接点上时就有个红色的标志在鼠标按下时拖到另一个连接点上就可以连接上一个连线.这样的连接线工具我们用程序如何做得出来?   回复  引用  查看    

#32楼  2005-06-16 10:21 David [未注册用户]

什么都不知道, 小草, 二位好!
本人现在也在做一个自定义流程的东东, 主要实现能让用户通过Visio画出流程图, 能通过图生成自定义的流程控制表中的记录, 反之, 也可以通过自定义的流程控制表中的记录来生成Visio图.
我看到你们二位对这方便颇有研究, 想请教一下思路, 如能提供相关资料, 本人当感激不尽   回复  引用    

#33楼  2005-06-16 11:27 David [未注册用户]

本人邮箱: zerojw@163.com   回复  引用    

#34楼  2005-06-17 15:20 小草 [未注册用户]

请问使用什么对象的什么属性可以判断选中的是连接线还是shape对象?谢谢!   回复  引用    

#35楼  2005-06-17 17:36 小草 [未注册用户]

通过page对象的get_SpatialSearch方珐可以返回选择的对象,但它返回的是Selection对象,Selection只包括shape对象,所以比较难办,请指教!   回复  引用    

#36楼 [楼主] 2005-06-20 12:19 什么都不知道      

通过判断shape的master名字可以区分出来是否连接线,比如if(e.shape.Master.NameU == "Dynamic connector")
  回复  引用  查看    

#37楼  2005-06-21 15:57 叶子 [未注册用户]

能否把“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码” 发给我。谢谢!
MSN:YL78@hotmail.com
Mail:yelong@gmail.com
  回复  引用    

#38楼  2005-06-22 13:31 babyshan [未注册用户]

网络上关于Visio二次开发的讨论真是太少了,我现在也在用Visio做通信制图工具,界面已经大致完成(这里不能贴图,要不我就贴上来),现在正在做功能部分,希望和大家互相交流,我的QQ:2252079
MSN:huangchangshan@hotmail.com   回复  引用    

#39楼  2005-06-23 10:54 babyshan [未注册用户]

不知道各位有没有用过Master的Getformulas方法,涉及到PSafeArray的使用,我是用Delphi开发的,按照SDK中的方法转换过来,老是提示“发生错误.”!   回复  引用    

#40楼  2005-06-25 19:46 haboy_2008 [未注册用户]

我也正在学VISIO二次开发,有兴趣的朋友可以加我哈!如果哪位大侠有"VISIO针对数据库开发的源码"能E我一份,先谢谢了!!
QQ:67030990
E-mail:hldyk@126.com   回复  引用    

#41楼  2005-06-25 19:50 haboy_2008 [未注册用户]

to 张风柱 :
我现在也在做这方面的开发。你能给我一份吗?我想参考参考!
谢谢!!我的邮箱是:hldyk@126.com   回复  引用    

#42楼  2005-06-28 11:10 小草 [未注册用户]

大家发现没有,visio控件好像并不是很好用,动态连接线好像既是connection对象,也是shape对象;还有tosheet和fromsheet属性也比较怪,一个连接集,通过这两个属性都只能找到一个shape,比较难办啊。   回复  引用    

#43楼  2005-07-01 09:22 babyshan [未注册用户]

建议设一个开发讨论区,我在我的主页上开了个论坛("Visio二次开发"):http://hygys.51.net/BBS/forumdisplay.php?fid=12
欢迎大家到论坛上交流!   回复  引用    

#44楼  2005-07-01 17:32 lele [未注册用户]

问个问题, 为什么 我保存了文件之后 我的事件就不相应了   回复  引用    

#45楼  2005-07-01 18:50 什么都不知道 [未注册用户]

to lele
不知道原因。我没遇到过。
如果这样的话,你保存完再注册一下事件   回复  引用    

#46楼  2005-07-26 20:38 adon [未注册用户]

如何得到当前点击的shape.
Visio.Shape shape = this.axDrawingControl1.Window.Application.ActivePage.Shapes[1];
这个[1]是不是代表当前选中的?   回复  引用    

#47楼  2005-07-26 20:45 adon [未注册用户]

this.visClickedShape = VisioUtility.GetClickedShape(visPage, e.x, e.y); // 根据鼠标点确定选择的Shape
能不能给出定义原码啊.
谢谢.   回复  引用    

#48楼 [楼主] 2005-07-27 13:20 什么都不知道      

你应该看一下我前面的相关文章
关于visioutility是msdn上一个例子中的源码。
另外该post中我只是说了一个样子,并不是shapes[1]就是选中的shape   回复  引用  查看    

#49楼  2005-07-29 19:50 adon [未注册用户]

前面提到的问题在邮件中已经得到了楼主的解决,非常感谢!
现在我按照VISIO中录制宏的方法来得到改变模具属性变化的方法,但还是不明白,

long UndoScopeID1 ;
UndoScopeID1 = visApplication.BeginUndoScope("设置对象大小");
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaU = "80 mm";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowXFormOut, visXFormPinY).FormulaU = "187.5 mm";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowXFormOut, visXFormHeight).FormulaU = "5 mm";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionScratch, 0, visScratchY).FormulaU = "500 mm";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionProp, 1, visCustPropsValue).FormulaU = "500 mm";
visApplication.EndUndoScope( UndoScopeID1, True);

long UndoScopeID2 ;
UndoScopeID2 = visApplication.BeginUndoScope("填充属性");
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = "9";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).Shapes.ItemFromID(5).CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = "9";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).Shapes.ItemFromID(4).CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = "9";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).Shapes.ItemFromID(3).CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = "9";
visApplication.ActiveWindow.Page.Shapes.ItemFromID(1).Shapes.ItemFromID(2).CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = "9";
visApplication.EndUndoScope( UndoScopeID2, True);
----------------------------
1\visApplication.ActiveWindow.Page中没有Shapes对象.
2\CellsSRC方法后面的参数是在哪定义的,怎么找出来.哪有这些方法的用法说明.   回复  引用    

#50楼  2005-07-30 16:21 adon [未注册用户]

目前关键是:visSectionObject, visRowFill, visFillForegnd
这三个对象 的值应该是什么?   回复  引用    

#51楼 [楼主] 2005-07-31 13:08 什么都不知道      

我再告诉你一个办法
用vs.net的对象浏览器查一下这些枚举值
另外,visio 2003的对象模型和visio 2002的几乎一样,多看msdn,就像cellssrc的方法,一眼就能看出是shape对象的一个方法。你用一个shape,按一下.,自然能知道是什么方法了。
  回复  引用  查看    

#52楼  2005-08-05 01:16 Jian [未注册用户]

能否把“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码” 发给我。谢谢!
Jian_Guo_Hu@hotmail.com
  回复  引用    

#53楼  2005-08-05 11:27 王号 [未注册用户]

如果所指的“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码”不是SDK VISIO2003 中的内容, 请拥有的朋友也发给我一份。谢谢!
联系方式:wnghao@163.com
MSN:wnghao@hotmail.com
  回复  引用    

#54楼  2005-08-09 21:20 babyshan [未注册用户]

我用SDK上转换坐标的例程,不幸被你言中,转换出来的结果一直都有偏差(1-17个点的偏差),而且偏差呈线性趋势,不知可否告知如何实现精确控制?   回复  引用    

#55楼  2005-09-16 16:15 hljyg [未注册用户]

如何添加Microsoft Visio Drawing Control组件   回复  引用    

#56楼  2005-09-20 11:39 什么都不知道 [未注册用户]

在(序)中讲过   回复  引用    

#57楼  2005-09-21 16:36 hljyg [未注册用户]

在(序)中是讲过但看不请填加的路径,能详细的说下吗?   回复  引用    

#58楼  2005-09-22 20:51 什么都不知道 [未注册用户]

序中说的是要在.net下开发,需要安装的组件
如果在程序中做引用,添加引用,com组件,选择microsoft visio 11.0 drawing control   回复  引用    

#59楼  2005-09-23 14:45 hljyg [未注册用户]

能否把“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码” 发给我一份。谢谢!
email:hljyg@sina.com   回复  引用    

#60楼  2005-09-27 13:19 百思不解 [未注册用户]

怎么能够在窗体 显示Visio 的工具条 和菜单栏
我想使用其中的功能!   回复  引用    

#61楼  2005-09-27 13:20 百思不解 [未注册用户]

急啊!怎么能够在窗体 显示Visio 的工具条 和菜单栏
我想使用其中的功能! 非常感谢!   回复  引用    

#62楼  2005-10-04 22:58 快乐的鱼 [未注册用户]

如果所指的“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码”不是SDK VISIO2003 中的内容, 请拥有的朋友也发给我一份。谢谢!
联系方式:jiyu_19@163.com
MSN:jiyu_net@hotmail.com
  回复  引用    

#63楼  2005-10-05 09:21 xzs [未注册用户]

能不能在程序中向sheet中加入形状?   回复  引用    

#64楼  2005-10-31 11:16 zhc [未注册用户]

请问在VC中如何实现事件的处理,Event和EventList对象如何应用,谢谢!   回复  引用    

#65楼  2005-11-01 10:38 什么都不知道? [未注册用户]

to 百思不解
你用webbrowser控件里面加visio drawing control   回复  引用    

#66楼  2005-11-01 10:39 什么都不知道? [未注册用户]

to xzs
可以按master方式加入,也可以直接画shape   回复  引用    

#67楼  2005-11-01 10:40 什么都不知道? [未注册用户]

to zhc
vc下这个控件就是一个普通的activex控件
按常规的activex控件事件机制处理就可以了   回复  引用    

#68楼  2005-11-02 09:53 zhc [未注册用户]

to 什么都知道?

首先感谢您回答我的问题, 我现在想实现的一个功能是: 如何在用鼠标拖动连接线的一个端点,并把此连接线粘附到某个形状的连接点时,触发一个事件, 因为我要在此时要记录形状之间的关系!我试过MouseUp事件,但这个事件在拖动形状后,它是不响应的!

谢谢!   回复  引用    

#69楼  2005-11-14 10:41 Iceberg [未注册用户]

其实,shape拖动的事件还是有的,不过我发现不能正常的激发。

在shapeadded事件里面,添加
e.shape.FormulaChanged +=new EShape_FormulaChangedEventHandler(shape_FormulaChanged);
这个formulachanged事件,不仅包括拖动,还包括形状长度高度改变,角度改变。   回复  引用    

#70楼  2005-11-14 10:43 Iceberg [未注册用户]

实际上我是在init里对整个page添加formulachange的事件,但在我的程序里,在某些同样的操作后,formulachange事件有时能正确响应,有是不能,这个我就非常奇怪。   回复  引用    

#71楼  2005-11-14 17:30 什么都不知道? [未注册用户]

to zhc
这个事件应该是抓不到的
我原来做形状之间的关系是在每次有mouse事件产生后遍历   回复  引用    

#72楼  2005-11-14 17:35 什么都不知道? [未注册用户]

to Iceberg
drawingcontrol有这样的问题
如果总发生,那么考虑使用addadvise这种事件处理方式
关于addadvise的用法,请参见帮助,我只做过很简单的例子,时间久了,我找不到源代码了   回复  引用    

#73楼  2005-11-14 20:55 Iceberg [未注册用户]

实际上您所说的创建移动事件的方法,实际上和我说的增加formulachanged的方法是一样的,您的方法能每次都正确响应吗?

我自己也写过移动的事件,不过我是在mousemove里面写的,很恶心,根据cursor的变化判断,呵呵。   回复  引用    

#74楼  2005-11-15 16:56 zhc [未注册用户]

在每次拖动连接线的端点后,会产生个MouseUp事件,我想要的是鼠标抬起的瞬间,连接线两个端点坐标的表达公式,因为我要对这两个公式进行分析,来获得两个端点所粘附到的形状!
后来我利用了鼠标钩子来截获此事件,成功激发,但是在截获的时候,连接线的两个端点的坐标其中有一个只是数字式,并没有转化成公式,所以,在这个时候,即使截获了这个消息,但获得不了公式,所以还是无法知道此连接线到底粘附到哪两个形状上了!

谢谢回答!   回复  引用    

#75楼  2005-11-29 18:03 小刀 [未注册用户]

能否把“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码” 也发一份给我。谢谢!
Mail:macro_001@163.com   回复  引用    

#76楼  2006-01-03 11:44 Iceberg [未注册用户]

又来叨扰。我发现我的程序需要drop成千上万个shape,程序不看负荷。请问阁下,有什么良方吗?visio可有什么简易模式之类的东西?   回复  引用    

#77楼  2006-02-19 18:22 forrestgump [未注册用户]

急需“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码”。谢谢!
gaoyongonline@msn.com   回复  引用    

#78楼  2006-03-31 14:28 横刀向天笑 [未注册用户]

微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码

有的大大能否给我发一份

rsrm@m165.com
  回复  引用    

#79楼  2006-05-17 11:22 qin [未注册用户]

各位大哥,能发一分份给小弟吗?qin_jian151@etang.com   回复  引用    

#80楼  2006-06-04 18:07 风雨雷电 [未注册用户]

@张风柱 能给我一份吗?谢谢
email:plax0850@126.com
  回复  引用    

#81楼  2006-06-21 12:57 麻烦给我一份 [未注册用户]

bookwormzju@gmail.com   回复  引用    

#82楼  2006-07-08 11:51 万伟 [未注册用户]

谢谢!!
各位大哥的指教
能发给小弟一份吗??
EMAIL: wanwei131700@163.com   回复  引用    

#83楼  2006-11-05 11:41 飘[匿名] [未注册用户]

请问怎么用vb实现,打开一个visio文件,给visio添加右键菜单,并添加响应事件。
谢谢!
也给我发一份吧
not_angel2001@yahoo.com.cn   回复  引用    

#84楼  2006-11-12 21:40 大海[匿名] [未注册用户]

我也想要,如果哪位有方便的话 共享下。谢谢了
14880868@163.com   回复  引用    

#85楼  2007-01-04 15:22 mzzdream [未注册用户]

各位大侠:您们好,我现在想用VISIO开发一个基于图形的脚本生成器,就是说可以拖一些图形到绘图里面,然后点击某个菜单之后希望生成一段脚本代码,请问怎么实现啊?有哪位大拿做过相关的项目,希望给点建议,非常感谢!   回复  引用    

#86楼  2007-04-16 14:40 LF [未注册用户]

最近我正在研究Visio 控件,确实感觉相关资料不多。“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码”,我也想要一份,谢谢!CQLF@SINA.COM.CN   回复  引用    

#87楼  2007-04-16 18:41 lixming [未注册用户]

正急需,如能给我一份“微软开发visio的全套源吗程序”。真是感激不尽呀。li_xuming@163.com   回复  引用    

#88楼  2007-04-18 10:26 gytt [未注册用户]

我也想要,哪位朋友还有麻烦也给我一份“微软开发visio的全套源吗程序”吧,非常感谢!!!gytt20962@163.com   回复  引用    

#89楼  2007-06-09 18:24 A.Xiao.Zhu [未注册用户]

我也想要,哪位朋友还有麻烦也给我一份“微软开发visio的全套源吗程序”吧,非常感谢
A.Xiao.Zhu@gmail.com   回复  引用    

#90楼  2007-06-21 11:15 唐希元 [未注册用户]

@张风柱
我也想要,最近正在做这方面的二次开发
那位老兄给我传一份吧!

fastertang@yahoo.com.cn
  回复  引用    

#91楼  2007-07-05 07:12 Feixing Song [未注册用户]

我也想要一份,哪位帮忙给传一下吧。
songfeixing@msn.com
  回复  引用    

#92楼  2007-07-24 21:55 求知 [未注册用户]

@zhaoxpi
一定要全部安装才能运行的

  回复  引用    

#93楼  2007-07-24 22:00 求知 [未注册用户]

@什么都不知道
我现在也在做C#写visio但是我不知道这么样单击一个图形触发事件.能否帮我解决一下这个问题;谢谢了
本人油箱是wuxinwei0123@163.com   回复  引用    

#94楼  2007-08-03 10:57 求知 [未注册用户]

我想双击就触发(visio)动态连接线事件.或者说:双击就弹出另外一个窗体.请助.急....请大家帮帮忙   回复  引用    

#95楼  2007-08-13 11:20 Jack [未注册用户]

只恨相见太晚,各位大侠能否传给我一份啊! 以前是用GoExpress绘流程图并关联业务数据的,界面和操作上很麻烦!想转为Visio的,上面提到的资源,各位有的帮忙传一下啊!先谢了。。。
zh_xyj@163.com   回复  引用    

#96楼  2007-08-29 20:59 hldyk [未注册用户]

本人有VISIO+数据库的全套解决方案。   回复  引用    

#97楼  2007-08-29 20:59 hldyk [未注册用户]

联系QQ:67030990,加QQ请注明:VISIO二次开发。   回复  引用    

#98楼  2007-09-27 17:07 tz [未注册用户]

tianzhou0374@163.com.太谢谢了.   回复  引用    

#99楼  2007-11-05 17:54 pingx [未注册用户]

能否把“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码”也 发给我一份。谢谢!   回复  引用    

#100楼  2007-11-05 18:01 pingx [未注册用户]

能否把“微软开发visio的全套源吗程序”和“visio针对数据库开发也有一套完整的源码”也 发给我一份。谢谢!
qiaohb@netease.com
可否用Delphi开发?   回复  引用    

#101楼  2007-11-21 12:29 kainster [未注册用户]

能不能也发给我一份“微软开发visio的全套源吗程序”??
感谢。。。
kainster@126.com
@pingx   回复  引用    

#102楼  2007-11-24 11:29 东方小子 [未注册用户]

我遇到一个奇怪问题,用两种获取右键点击的坐标点,以便显示我的快捷菜单。结果,都有偏差啊。我有一种开关元件,形状类似于'日'字形,老是点几次,我的快捷菜单才会显示,不知道为什么?谢谢!

第一种:
VisioUtility.GetClickedShape(visPage, e.x, e.y); // 根据鼠标点确定选择的Shape

第二种:
public static Point PageUnitsToPixels(AxDrawingControl axDrawingControl, double x, double y)
{
double vLeft, vTop, vWidth, vHeight;
axDrawingControl.Window.GetViewRect(out vLeft, out vTop, out vWidth, out vHeight);

//
int xForm = (int)(axDrawingControl.Left + (axDrawingControl.Width / vWidth) * (x - vLeft));
int yForm = (int)(axDrawingControl.Top + (axDrawingControl.Height / vHeight) * (vTop - y));

return new Point(xForm, yForm);
}

  回复  引用    

#103楼  2007-11-24 11:31 东方小子 [未注册用户]

如果有可能的话,希望版主也能给一份“微软开发visio的全套源码程序”和“visio针对数据库开发也有一套完整的源码”,我也想要一份,谢谢!
120804569@qq.com   回复  引用    

#104楼  2008-01-09 19:22 清竹玉戈 [未注册用户]

关于鼠标位置最简单就是用API实现了呵!   回复  引用    

#105楼  2008-01-10 22:09 清竹玉戈 [未注册用户]

[DllImport("user32.dll")]
static extern bool GetCursorPos(out Point lpPoint);
  回复  引用    

#106楼  2008-01-20 15:09 bxf2003 [未注册用户]

麻烦版主也能给一份“微软开发visio的全套源码程序”和“visio针对数据库开发完整的源码”,十分需要,非常感谢!   回复  引用    

#107楼  2008-01-20 15:10 bxf2003 [未注册用户]

如果有可能的话,希望版主也能给一份“微软开发visio的全套源码程序”和“visio针对数据库开发也有一套完整的源码”,我也想要一份,谢谢!
biexiaofeng2003@tom.com   回复  引用    

#108楼  2008-03-19 09:30 cc_for [未注册用户]

想请教大侠们,VC编写visio程时,如何得到visio画布的大小即得到长和宽,实际的坐标如何和visio中的坐标进行转换啊?还有如果想从一点向另一点绘制直线如何实现阿? 谢谢!
  回复  引用    

#109楼  2008-04-01 15:16 hao9993 [未注册用户]

1、希望版主也能给一份“微软开发visio的全套源码程序”和“visio针对数据库开发也有一套完整的源码”,我也想要一份,谢谢!
2、最好有说明用visio编程的知识,如shape是什么等等,图中元素的关系;
3、公司有部分代码,但没有VISIO相关的文档

本人邮箱:hao9993@163.com
  回复  引用    

#110楼  2008-04-25 10:38 jerry00 [未注册用户]

juventus0420@gmail.com

我也想要一份完整源码,哪位大哥麻烦传我一份吧,谢谢!!   回复  引用    

#111楼  2008-05-30 17:03 dumu [未注册用户]

wangshenshen0616@163.com
我也想要一份制作类似VISO的绘图程序源码,哪位大哥麻烦传我一份吧,谢谢!!   回复  引用    

#112楼  2008-06-18 19:36 1111111111111 [未注册用户]

希望版主也能给一份“微软开发visio的全套源码程序”和“visio针对数据库开发也有一套完整的源码”,我也想要一份,aiqin_817@sohu.com谢谢!   回复  引用    

#113楼  2008-06-27 14:58 jerry222222 [未注册用户]

看了您的文章,我收益匪浅,非常感谢您在visio的二次开发上给予大家的无私帮助!!!
希望版主也能给一份“微软开发visio的全套源码程序”和“visio针对数据库开发也有一套完整的源码”,我也想要一份,fujie20081@126.com   回复  引用    

#114楼  2008-07-16 10:36 zf904 [未注册用户]

您好,我现在正在尝试这visio的二次开发,您的这些文章给了我很大的帮助,但是有一个问题需要想您请教,就是关于VisioUtility类的定义的问题,我一直没找到它的命名空间,我也看了你的说明:visioutility是msdn上一个例子中的源码。但是我在msdn上也没搜索到。关于这个问题不知道您是否能够给我提供帮助,现在我急需解决这个问题。
另外如果可以的话希望您也能发一份:“微软开发visio的全套源码程序”和“visio针对数据库开发也有一套完整的源码” 给我。
不胜感激!!!   回复  引用    

#115楼  2008-07-16 12:59