找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 659|回复: 13

[求助]:objextarx怎么在CAD里加菜单啊!

[复制链接]
发表于 2004-8-6 02:17:27 | 显示全部楼层 |阅读模式

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

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

×
我刚学,请高手指教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-8-6 08:37:22 | 显示全部楼层
请用"菜单"关键字查找论坛
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-7 00:32:04 | 显示全部楼层
给AutoCAD加菜单的方法大致有四种:
1. 直接编辑AutoCAD的菜单源文件acad.mns,把自己的菜单想加入后重新编译一下就可以了,以后可用menu命令加载。
2. 用常规的MFC方法。即GetMenu()获取CAD主窗体的菜单,之后用CMenu的方法向其中追加自己的菜单项就可以了。
3. 用菜单条控件。
4. 用COM方法.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-8-18 20:46:46 | 显示全部楼层
在下面的程序中怎么加入我的菜单?请明示:

BOOL CESMainApp::InitInstance()
{
        AfxEnableControlContainer();
        // Standard initialization
        // If you are not using these features and wish to reduce the size
        //  of your final executable, you should remove from the following
        //  the specific initialization routines you do not need.

#ifdef _AFXDLL
        Enable3dControls();                        // Call this when using MFC in a shared DLL
#else
        Enable3dControlsStatic();        // Call this when linking to MFC statically
#endif
        // Change the registry key under which our settings are stored.
        // TODO: You should modify this string to be something appropriate
        // such as the name of your company or organization.
        SetRegistryKey(_T("**信息系统"));
       
        //To create the main window, this code creates a new frame window
        CESMainFrm* pMainFrame = new CESMainFrm;
        m_pMainWnd = pMainFrame;
        if (!pMainFrame->Create(NULL, _T("**信息系统1.0")))
                return FALSE;
        m_hSysIcons = LoadIcon(IDR_MAINFRAME);
    m_pMainWnd->SetIcon(m_hSysIcons,FALSE);
        m_pMainWnd->ShowWindow(SW_SHOW);

        StartAutoCAD();

……在这个地方怎样加入我自己定制的菜单:   ESMain.mnu

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

使用道具 举报

发表于 2004-8-19 10:50:38 | 显示全部楼层
好像是个独立程序想与CAD完成通讯,可以这么做:
1、用上面的方法中的任一种把菜单加到CAD中。
2、对CAD主窗口设一个钩子(SetWindowHookEx),通过钩子把你所加的菜单、本地窗口以及CAD窗口连接起来,并通过自定义消息的互传完成双向控制。这里面最麻烦的不在于通讯通道的建立,而在于两进程通讯的响应与反馈控制机制,可能还要用一些信号量来辅助作业。不到山穷水尽的时候不采用这方法,而是将CAD相关功能放入ARX并驻留CAD,通过外部完成一些简单的单向控制,这样程序设计简单,调试也简单。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-8-19 22:07:11 | 显示全部楼层
谢谢Hello的解答。
可我是半道出家,先认识 AutoCAD ARX 才被迫学VC++的,所以这方面的知识欠缺的很。直接加载菜单很简单。
能否请你将编程的那个简单的方法详细的说明一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-23 16:01:27 | 显示全部楼层
最初由 Hellow 发布
[B]给AutoCAD加菜单的方法大致有四种:
1. 直接编辑AutoCAD的菜单源文件acad.mns,把自己的菜单想加入后重新编译一下就可以了,以后可用menu命令加载。
2. 用常规的MFC方法。即GetMenu()获取CAD主窗体的菜单,之后用C... [/B]

Hellow 兄提到可用COM方法添加菜单,确实可以并且也很方便,但有个问题,就是通过COM添加的菜单不能捕捉到WM_INITMENUPOPUP事件!不知你是否有好办法?多谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-8-28 20:27:19 | 显示全部楼层
最常规的方法是用钩子(SetWindowHookEx或acedRegisterFilterWinMsg),这样可以很方便的监视/处理发往目标窗口的各类消息.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-8-29 16:45:25 | 显示全部楼层
1. 直接编辑AutoCAD的菜单源文件acad.mns,把自己的菜单想加入后重新编译一下就可以了,以后可用menu命令加载。
我只学会了这种方法,请问是最好的方法吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 01:12 , Processed in 0.183124 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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