freejustin 发表于 2005-4-28 11:06:00

[求助] 请问王咣生版主《编程指南》 CH7-6工具条例子问题

王咣生版主你好,使用编程指南CH7-6工具条例子时:


现象:工具条窗口的消息,不能直接调用已经注册的命令函数,只有通过sendStringToExecute函数发送才可以。但是这样就会出现,点击工具条按钮后必须鼠标移动到视图窗口才可以响应,sendStringToExecute函数发送的命令。


解决办法:1.是不是有其他的调用方法可以直接响应已经注册的函数?2.ARX有没有直接控制鼠标移动的函数,把鼠标移动到视图窗口,然后立刻移回去。

王咣生 发表于 2005-4-28 11:33:00

reply

我没有明白你的意思,"点击工具条按钮后必须鼠标移动到视图窗口才可以响应",不是要交互操作的吗?你想要鼠标移动的什么效果呢?

pandoram 发表于 2005-4-28 18:02:00

是工具条上不用交互操作的按钮功能不对吧..McAuley的那本书, Ch7_4, 7_5, 7_6三个例子都写得混乱无比..


楼主也起码说说到底是什么功能不能响应啊, 显示图像细节的? 隐藏/重显示工具条的?..


怀疑你的sendStringToExecute是送给mdiActiveDocument的, 工具条激活的时候CAD主程序失去焦点, 所以要等到鼠标重新移动获得焦点后才能执行sendStringToExecute. 另外sendStringToExecute一般是要等当前命令结束才执行的, 你有一个激活的工具条的话可能会被看作是还有命令在执行.

freejustin 发表于 2005-4-29 14:33:00

谢谢<A name=27317><FONT color=#990000><B>王咣生</B></FONT></A>版主和 <A name=27425><FONT color=#000066><B>pandoram</B></FONT></A> 的回答:肯能我的表述不够清晰。就像<A name=27317><FONT color=#990000><B>王咣生</B></FONT></A>版主版主所说,有时候我就是不需要交互绘制CAD图。目标:点击工具条上的按钮,鼠标不动,就能直接直接绘制CAD图,希望在void CTBGenWnd::OnAboutCasco(){*******}中添加一段代码能够实现。现在是通过发送acDocManager-&gt;sendStringToExecute(acDocManager-&gt;curDocument(), cmdString, true, false);来实现的。


pandoram发表于2005-4-28 18:02:00static/image/common/back.gif是工具条上不用交互操作的按钮功能不对吧..McAuley的那本书, Ch7_4, 7_5, 7_6三个例子都写得混乱无比..



楼主也起码说说到底是什么功能不能响应啊, 显示图像细...


        还尝试过响应消息函数void CTBGenWnd::OnAboutCasco()中:


acDocManager-&gt;lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);<BR>        cascoAboutCasco(); //为注册命令函数(绘制图形)//        包含***Commands.CPP<BR>        acDocManager-&gt;unlockDocument(curDoc());


也是必须移动鼠标到视图窗口,才可以响应绘图;没有一点击就绘制。另外还有关于对话框预览的还没有解决,利用acdbGetPreviewBitmapFromDwg和acdbDisplayPreviewFromDwg两个函数自己都没有做好。


请您们帮助解决,特此谢谢!<BR>

王咣生 发表于 2005-4-30 00:37:00

回复

预览功能参见:


<A href="dispbbs.asp?boardID=14&amp;ID=11484&amp;page=1" target="_blank" >dispbbs.asp?boardID=14&amp;ID=11484&amp;page=1</A>

pandoram 发表于 2005-5-3 11:39:00

..在工具条函数里把焦点交回给CAD主窗口然后发送sendStringToExecute看看吧..


具体怎么做可以参见Ch7_3例子中无模式对话框和CAD主窗口的焦点交换.
页: [1]
查看完整版本: [求助] 请问王咣生版主《编程指南》 CH7-6工具条例子问题