关于Word Shape.AddOLEObject和AddOLEControl的讨论(60分奉上)
最近在用C#做一个word插件的开发,有个问题就是在word中插入ActiveX 控件的问题,这个控件打算用来显示图片,和显示一些下拉菜单~~
现在有个问题就是用C++写好的控件(包括用word自带的image控件)用AddOLEControl方法插入到WORD已后,这个控件是不能
选择的,也就是说不能点着它移动了~但是右键的下拉菜单还是可以实现,这个就让我很纠结了.网上找了半天没看到相关的解决
办法 和头绪.
在就想到了用Shape.AddOLEObject这种办法加入控件,这个加入的好处就在用可以加入C#用regasm注册的和C++啊,自带的
image控件啊都可以加入,而且加进去的东西可以点击并移动.不好的地方就在于如果TAB切别的程序回来,拖动一下控件,就会
发现这个控件不听话了,右键菜单又是出WORD自带了,点击什么也不理你了~ 哎真是被闹的无语了.最后还是偏向用C++写
控件,然后用AddOLEControl加入~但不是设计模式不能点击,不能移动着实不知道怎么办了.
所在在这想请教原来有过这方面经验的前辈 指点一下~~至少能知道问题出在哪,有个头绪也好.小弟在此谢过~~~60分奉上 --------------------编程问答-------------------- 在补充一点吧~就是用AddOLEControl加入WINDOWS自带的控件 Forms.Image.1 也是不能实现拖动,所以
有个想法就是,是不是要给这个控件写点击拖动的事件~ --------------------编程问答-------------------- 给控件写移动事件是确定无疑了~~现在是怎么实现点击到以后最好能出个框,然后拉着走的效果~~
控件我是用C++写的MouseDown参数是(SHORT Button, SHORT Shift, OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y); 另外一边用控件是用C#写的参数是(object sender, EventArgs e)
哎.两边互用起来越是别扭啊啊啊~~ 现在还暂没理清怎么实现拉着走的效果 ~感觉要在
mousemove里一直调用重绘函数啊 ,纠结ING~ 希望有经验的朋友指点指点~
另放上一个原来朋友写这方面的例子供大家参考
http://blog.csdn.net/dekko/article/details/1797903 --------------------编程问答-------------------- 在word的移动事件的代码里要用到word的一些对象,具体是哪些对象自己在word上录制一个宏看看就知道了。
补充:.NET技术 , C#