找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1379|回复: 27

[求助] CAD主视窗口激活问题

[复制链接]

已领礼包: 21个

财富等级: 恭喜发财

发表于 2017-8-16 08:24:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
由自已做的树型视菜单,单击树视节点,发送一条命令到命令窗口,如“输入线名称:”。此时按键盘没有作保反映,必须先用鼠标点击主视窗,方可由键盘输入。这样不方便。怎样发送命令到命令窗口,并且同时激活主视窗口?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-8-16 08:28:32 | 显示全部楼层
你是怎么做的? 把代码贴到论坛来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-8-16 10:52:18 | 显示全部楼层
使用acDocManagerPtr()->sendstringToExecute(curDoc(),_T("(seleobj)\n"),false,true)
发送到cad命令窗口。鼠标进入树型为单箭头,单击结点后(执行上述函数),回到cad图形视窗仍为单箭头,只有在cad图形视窗单击后,鼠标才变回十字型。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2017-8-16 11:15:15 | 显示全部楼层
让ACAD主窗口保持焦点。
鼠标离开菜单窗口,让ACAD主窗口保持焦点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2017-8-16 12:11:03 | 显示全部楼层
那就发送focus消息到绘图区试试,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-8-16 15:25:49 | 显示全部楼层
请问怎样“发送focus消息到绘图区试试”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-8-16 15:32:36 | 显示全部楼层
“鼠标离开菜单窗口,让ACAD主窗口保持焦点。“ 思路是清晰的,但我不会做。请您帮忙。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2017-8-16 18:41:03 | 显示全部楼层

主窗口 SetFocus()
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-8-17 05:51:14 | 显示全部楼层
CMDIFrameWnd *pF;
pF = acedGetAcadFrame();               
acDocManagerPtr()->sendStringToExecute(curDoc(), _T("(seleobj)\n"), false, true);
pF->SetFocus();
这样试了,不行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2017-8-17 07:25:25 来自手机 | 显示全部楼层
drawing窗口
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-8-17 12:20:40 | 显示全部楼层
CView *pF;
                pF = acedGetAcadDwgView();
                acDocManagerPtr()->sendStringToExecute(curDoc(), _T("(seleobj)\n"), false, true);
                pF->SetFocus();
这样也不行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-8-17 12:31:13 | 显示全部楼层
为了即时传送到命令行执行,
你要在 sendStringToExecute 前面 设置 命令行窗口焦点。

  1.                 AcApDocument* pDoc = acDocManager->curDocument();
  2.                 if (pDoc)
  3.                 {
  4.                         // give the command line focus (otherwise the command doesn't get processed immediately)
  5.                         CWnd* wndCommandLine = acedGetAcadDockCmdLine();
  6.                         if( wndCommandLine )
  7.                                 wndCommandLine->SetFocus();               
  8.                         Acad::ErrorStatus es = acDocManager->sendStringToExecute(pDoc, sToSend, false, true, false);
  9.                         if( es == Acad::eOk )
  10.                                 acedRetT();
  11.                 }


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2017-8-17 12:42:10 来自手机 | 显示全部楼层
我觉得acedGetAcadDwgView()也行,主要是顺序问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-8-17 17:28:06 | 显示全部楼层
if (str == _T("选线"))
        {       
                AcApDocument *pDoc = acDocManager->curDocument();
                if (pDoc) {
                        CWnd* wndCommandLine = acedGetAcadDockCmdLine();
                        if (wndCommandLine)
                                wndCommandLine->SetFocus();
                        Acad::ErrorStatus es = acDocManager->sendStringToExecute(pDoc, _T("(seleobj)\n"), false, true);
                        if (es == Acad::eOk)
                                acedRetT();
                }
        }
这样试了,也不行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-8-17 17:31:59 | 显示全部楼层

你不点击菜单,鼠标移动到菜单上,然后离开进入CAD窗口,这个时候光标自动变成十字线不?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 06:29 , Processed in 0.423531 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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