明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1833|回复: 5

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

[复制链接]
发表于 2005-4-28 11:06:00 | 显示全部楼层 |阅读模式
王咣生版主你好,使用编程指南CH7-6工具条例子时:


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


解决办法:1.是不是有其他的调用方法可以直接响应已经注册的函数?2.ARX有没有直接控制鼠标移动的函数,把鼠标移动到视图窗口,然后立刻移回去。
发表于 2005-4-28 11:33:00 | 显示全部楼层

reply

我没有明白你的意思,"点击工具条按钮后必须鼠标移动到视图窗口才可以响应",不是要交互操作的吗?你想要鼠标移动的什么效果呢?
发表于 2005-4-28 18:02:00 | 显示全部楼层
是工具条上不用交互操作的按钮功能不对吧..McAuley的那本书, Ch7_4, 7_5, 7_6三个例子都写得混乱无比..


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


怀疑你的sendStringToExecute是送给mdiActiveDocument的, 工具条激活的时候CAD主程序失去焦点, 所以要等到鼠标重新移动获得焦点后才能执行sendStringToExecute. 另外sendStringToExecute一般是要等当前命令结束才执行的, 你有一个激活的工具条的话可能会被看作是还有命令在执行.
 楼主| 发表于 2005-4-29 14:33:00 | 显示全部楼层
谢谢王咣生版主和 pandoram 的回答:肯能我的表述不够清晰。就像王咣生版主版主所说,有时候我就是不需要交互绘制CAD图。目标:点击工具条上的按钮,鼠标不动,就能直接直接绘制CAD图,希望在void CTBGenWnd::OnAboutCasco(){*******}中添加一段代码能够实现。现在是通过发送acDocManager->sendStringToExecute(acDocManager->curDocument(), cmdString, true, false);来实现的。
pandoram发表于2005-4-28 18:02:00是工具条上不用交互操作的按钮功能不对吧..McAuley的那本书, Ch7_4, 7_5, 7_6三个例子都写得混乱无比.. 楼主也起码说说到底是什么功能不能响应啊, 显示图像细...
还尝试过响应消息函数void CTBGenWnd::OnAboutCasco()中: acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);
cascoAboutCasco(); //为注册命令函数(绘制图形)// 包含***Commands.CPP
acDocManager->unlockDocument(curDoc()); 也是必须移动鼠标到视图窗口,才可以响应绘图;没有一点击就绘制。另外还有关于对话框预览的还没有解决,利用acdbGetPreviewBitmapFromDwg和acdbDisplayPreviewFromDwg两个函数自己都没有做好。 请您们帮助解决,特此谢谢!
发表于 2005-4-30 00:37:00 | 显示全部楼层

回复

发表于 2005-5-3 11:39:00 | 显示全部楼层
..在工具条函数里把焦点交回给CAD主窗口然后发送sendStringToExecute看看吧..


具体怎么做可以参见Ch7_3例子中无模式对话框和CAD主窗口的焦点交换.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 06:43 , Processed in 0.148149 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表