明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: huangyhg

AcadMenuGroup是什么?

  [复制链接]
发表于 2003-10-21 11:24:00 | 显示全部楼层
[[我在调试objectarx\samples\mfcsamps\contextmenu程序时,没能看到dsw文件,只看见了好多cpp文件,于是我在vc下新建了dll工程,然后将contextmenu目录下的这些.h和.cpp和.rc和.rc2拷到了新建的目录下,该替换的我已替换掉,但我在rebuild all时,出现了一个错误:
arxmfctmpl.cpp(14):error c2065:'arxMFCDLL':undeclared indentifier
arxMFCDLL在哪里定义阿?怎么定义阿?]]

//My result
你这样作是不对的,你只拷贝了源文件,在VC的程序配置中。你没有拷贝过去(他包括许多lib文件和其它文件)。所以在动态编译是出现了错误。你只需要直接打开源文件代码的DSW或者DSP文件即可。也可以直接用向导创建。

如果要比较前一种和后一种的不同,只需分别打开两个WORKSPACE,然后按前面的方法分别打开(创建)工程,然后对比PROJIECT下的SETTING中的选项即可。
祝你好运!
对了,除开在特别情况下用你上面的操作,一般是用向导创建一个工程!·
发表于 2003-10-21 11:36:00 | 显示全部楼层
[我在调试objectarx\samples\mfcsamps\contextmenu程序时,没能看到dsw文件,只看见了好多cpp文件,于是我在vc下新建了dll工程,然后将contextmenu目录下的这些.h和.cpp和.rc和.rc2拷到了新建的目录下,该替换的我已替换掉,但我在rebuild all时,出现了一个错误:
arxmfctmpl.cpp(14):error c2065:'arxMFCDLL':undeclared indentifier
arxMFCDLL在哪里定义阿?怎么定义阿?]

//////////////////////////////////////////
不能,因为你没有把*.LIB拷贝过去,所以在动态编译的时候会出现错误的。
//
正确的做法时直接打开DSW或者DSP文件;或者用向导创建。
//
在ARX DESIGN中,一定要养成用向导创建工程,除非你对他的LIB包含文件特别熟悉。
//
希望对你有用
 楼主| 发表于 2003-10-22 20:59:00 | 显示全部楼层
哦。你知道gps啊?我到现在也没搞明白。
越看问题越多,好像gps语言是一种语言,如同程序设计语言,我要用gps的话,就好像要应做个编译器,该对图纸里的各几何要素进行规范,要符合gps语言里的”语法“才行,反之,得像vc编译器一样报错才行啊!
这个是不是工程庞大?若只对尺寸和公差标注进行规范,是否简单许多?
我最近装了个visual assist6.0,很好用,我想编译器太难了点,做成这种visual assist,倒不错!可行吗?给点建议?
发表于 2003-10-22 21:21:00 | 显示全部楼层
visual assist6.0 用来做什么的?我不会用,所以也不能给你什么建议了!
gps最重要的是对数据的解析。
发表于 2003-10-22 21:25:00 | 显示全部楼层
你知道怎么用vc 自动加载菜单文件吗?
用到的函数为ACEDCOMMAND,命令为MENU,但是我照常规的方法则不能加载
发表于 2003-10-24 17:04:00 | 显示全部楼层
CMenu *newMenu =currMenuGroup->append(...........);//
CMenu没有append()这个成员函数,是不是AppendMenu();
但他的返回值是BOOL,怎样往下添加popmenu的每一项呢?
发表于 2003-10-25 18:19:00 | 显示全部楼层
把第UINT类型的参数做如下的转换:
CMenu *pMenu = new CMenu;
pMenu->LoadMenu(ID);
currMenuGroup->AppendMenu(,UNIT(pMenu->句柄),);
//这样就可以了
//试试吧,pMenu 可以是多级菜单
发表于 2003-10-27 20:19:00 | 显示全部楼层
我试了还是不行,以下是我的代码
void addmenu()
{
        CMenu *currMenuGroup,*newMenu;
        BOOL en=0;
        currMenuGroup=acedGetAcadFrame()->GetMenu();
        if(currMenuGroup==NULL){
                AfxMessageBox("can't get menu");
                return ;
        }
        newMenu=new CMenu;
        newMenu->LoadMenu(IDR_MENU1);
        en=currMenuGroup->AppendMenu(MF_POPUP,UINT(newMenu->m_hMenu));
        if(en!=TRUE)
                AfxMessageBox("\nappend menu error");
        else
                AfxMessageBox("\nappend menu ok");
       
}
请大侠帮忙看看,编译运行都没错,en也返回TRUE,但菜单仍没显示
 楼主| 发表于 2003-10-27 21:26:00 | 显示全部楼层
lilin,最近我好傻,忘了还需点下一页,所以一直都没能看到您的留言。
.mnu文件,直接将acad.mnu替换掉就行了,我只会这个好傻的办法。
 楼主| 发表于 2003-10-27 21:34:00 | 显示全部楼层
lilin,你说的是加载菜单,还是菜单响应文件?
嘿嘿,你可以去清华bbs上问问,那里有个cad技术专栏,人气还比较旺
huangyhg:781400
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 21:30 , Processed in 0.167612 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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