[求助] 请问王咣生版主《编程指南》 CH7-6工具条例子问题
王咣生版主你好,使用编程指南CH7-6工具条例子时:现象:工具条窗口的消息,不能直接调用已经注册的命令函数,只有通过sendStringToExecute函数发送才可以。但是这样就会出现,点击工具条按钮后必须鼠标移动到视图窗口才可以响应,sendStringToExecute函数发送的命令。
解决办法:1.是不是有其他的调用方法可以直接响应已经注册的函数?2.ARX有没有直接控制鼠标移动的函数,把鼠标移动到视图窗口,然后立刻移回去。
reply
我没有明白你的意思,"点击工具条按钮后必须鼠标移动到视图窗口才可以响应",不是要交互操作的吗?你想要鼠标移动的什么效果呢? 是工具条上不用交互操作的按钮功能不对吧..McAuley的那本书, Ch7_4, 7_5, 7_6三个例子都写得混乱无比..楼主也起码说说到底是什么功能不能响应啊, 显示图像细节的? 隐藏/重显示工具条的?..
怀疑你的sendStringToExecute是送给mdiActiveDocument的, 工具条激活的时候CAD主程序失去焦点, 所以要等到鼠标重新移动获得焦点后才能执行sendStringToExecute. 另外sendStringToExecute一般是要等当前命令结束才执行的, 你有一个激活的工具条的话可能会被看作是还有命令在执行. 谢谢<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->sendStringToExecute(acDocManager->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->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);<BR> cascoAboutCasco(); //为注册命令函数(绘制图形)// 包含***Commands.CPP<BR> acDocManager->unlockDocument(curDoc());
也是必须移动鼠标到视图窗口,才可以响应绘图;没有一点击就绘制。另外还有关于对话框预览的还没有解决,利用acdbGetPreviewBitmapFromDwg和acdbDisplayPreviewFromDwg两个函数自己都没有做好。
请您们帮助解决,特此谢谢!<BR>
回复
预览功能参见:<A href="dispbbs.asp?boardID=14&ID=11484&page=1" target="_blank" >dispbbs.asp?boardID=14&ID=11484&page=1</A> ..在工具条函数里把焦点交回给CAD主窗口然后发送sendStringToExecute看看吧..
具体怎么做可以参见Ch7_3例子中无模式对话框和CAD主窗口的焦点交换.
页:
[1]