cairunbin 发表于 2011-1-19 09:14:15

一个复杂的问题,关于对话框与CAD交互

本帖最后由 cairunbin 于 2011-1-19 09:19 编辑

我有一段程序,在AutoCAD2009下运转正常,但是编译到2011下就会出问题。
具体情形如下:
我先利用Application.ShowModelessDialog函数显示一个非模式对话框A,
然后,点击对话框中的一个按钮,
该按钮首先隐藏对话框A,然后,利用DocumentCollection.Open函数打开一个新的DWG文件。
然后,我的程序再利用Application.ShowModalDialog函数打开一个模式对话框B。
在对话框B中有一个按钮,这个按钮调用Editor.GetPoint函数与CAD进行交互,在屏幕上获取一个点位。

现在的问题是,这样的程序,在autocad2009下正常,但是在2011下却有问题。
GetPoint函数运行的时候,虽然在AutoCAD中也出现了选择点的十字光标,但是却不能进入选择点位的状态。此时CAD好像处在idle状态下,当用户在十字光标状态下点击待选点位的时候,CAD会提示用户输入下一个对角点。就像当CAD处于idle状态时,在屏幕上点击一点,则会提示你输入另外一个角点。

这时候,如果用户按下Esc键,退出选择点模式,复现对话框B,然后,再点击B中的按钮,则一切正常了。

每次启动AutoCAD以后,不正常状况只出现一次。也就是说,如果我们运行过一次上述程序,退出后,再次运行该程序,一切都是正常的。

这个问题真的好令人费解。

希望大侠们予以关注,给予解答。

谢谢。

代码在附件中。项目是vs2010的。在vs2008下编辑,也是一样有问题。

加载dll后,运行MyCommand命令。但首先要在c盘根目录下创建一个"1.dwg"文件。

yxr_MJTD 发表于 2011-1-19 14:06:35

估计是窗口没有得到焦点.

雪山飞狐_lzh 发表于 2011-1-19 14:13:44

如果Cad2008、2010没有问题的话,就是2011的bug,有时间测试下

cairunbin 发表于 2011-1-19 14:32:41

雪山飞狐_lzh 发表于 2011-1-19 14:13 static/image/common/back.gif
如果Cad2008、2010没有问题的话,就是2011的bug,有时间测试下

谢谢。

2009没问题。
2010没测试过。

希望有时间帮忙看看。

cairunbin 发表于 2011-1-25 14:40:00

哪位高手给个说法?

雪山飞狐_lzh 发表于 2011-1-25 17:51:33

你把工程转成VS2008的吧?

cairunbin 发表于 2011-2-11 19:55:23

本帖最后由 cairunbin 于 2011-2-11 19:56 编辑

回复 雪山飞狐_lzh 的帖子

雪山飞狐:
不好意思,过年期间没上论坛。

我把我的项目转成2008的了。

请你给看看。

谢谢。
页: [1]
查看完整版本: 一个复杂的问题,关于对话框与CAD交互