明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3072|回复: 8

[求助] menu加载 (奇怪的菜单反复)(问题已解决)

[复制链接]
发表于 2005-5-10 22:43:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-5-17 10:51:01 编辑

1。dsf.arx,acad.rx 放到了acad2000目录下 2。mymenu.mnu,编译成了mymenu.mnc,放到了support目录下 acad.rx完全代码如下: dsf.arx dsf.arx初始化代码如下: void InitApplication()
{
// NOTE: DO NOT edit the following lines.
//{{AFX_ARX_INIT
acedRegCmds->addCommand("ASDK_CMD", "OFSET","OFSET", ACRX_CMD_MODAL, ofset);
//}}AFX_ARX_INIT
// TODO: add your initialization functions
loadmenu();
} void loadmenu()
{
acedCommand(RTSTR,"menu",RTSTR,"dsfmenu.mnc",RTSTR,"",0);
}
mymenu.mnu完全代码如下: //这一段是关键,缺少菜单组名,就无法完成加载,偶然用menuload加载时发现的。 ***MENUGROUP=DSFMENU
***POP1
**FILE
ID_MENU_FILE [文件(&F)]
ID_FILE_OPEN [打开(&O)... Ctrl+O]^C^C_open
ID_FILE_QUIT [退出(&X)]^C^C_quit ***POP2
**OFFSET
ID_MENU_OFFSET [偏移(&O)]
ID_OFFSET_START [开始(&O)]^C^C_ofset
ID_OFFSET_UNDO [放弃(&U) Ctrl+Z]^C^C_u
ID_OFFSET_REDO [重做(&R) Ctrl+Y]^C^C_redo ***POP3
**VIEW
ID_MENU_VIEW [视图(&V)]
ID_VIEW_ZOOM [->缩放(&Z)]
ID_VIEW_REALTIME [实时]'_zoom ;
[--]
ID_VIEW_MAGNIFY [放大(&I)]'_zoom 2x
ID_VIEW_SHRINK [缩小(&O)]'_zoom .5x
[--]
ID_VIEW_ALL [全部(&A)]'_zoom _all
ID_VIEW_EXTEND [<-范围(&E)]'_zoom _e
[--]
ID_VIEW_PAN [平移(&)]'_pan 运行acad.exe反应如下:(在运行之前一切指令正常) 1。dsf.arx加载上去了,用自定义的ofset命令探出 2。mymenu.mnc不加载,菜单无变化 3。在命令行中用menu命令加载mymenu.mnc,菜单成功显示 3。在命令行中输入appload 命令,加载/卸载应用程序对话框不出现。出现如下图提示

本帖子中包含更多资源

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

x
发表于 2005-5-13 09:30:00 | 显示全部楼层
用acad.rx加载的ARX是在CAD本身初始化完全完成之前就加载, 所以那个时候第一不保证菜单搜索路径可用, 第二不保证acedCommand可用(initApplication里面不应该有acedCommand之类的操作).


再说你的菜单名结尾, CAD是会以为你的文件名里有空格而不会认为那是结尾的..


加载菜单之后appload失效是因为你把CAD自己的菜单已经拿掉了, CAD有可能已经不认识appload这个命令了..


要初始化时就改变菜单, 最好直接重写acad.mnu, 把原来的备份一个就是了.
 楼主| 发表于 2005-5-13 10:51:00 | 显示全部楼层
鲜花一朵
 楼主| 发表于 2005-5-13 10:59:00 | 显示全部楼层
1.                 无意中看到ACAD2000里面有appload.arx文件,用arx-load加载后,appload功能可用了~



        2. 删了acad.rx,不加载自定义的arx,单独来试菜单加载


现在把acad.mnu备份后,删除,用自己的mymenu.mnu改名为acad.mnu,


启动acad.exe,菜单还是标准菜单,


用menu命令加载acad.mnu,编译成.mnc,关闭acad


再启动acad.exe,自定菜单出来了,关闭acad


再启动acad.exe,菜单成了图示的样子,关闭acad


再启动acad.exe,又是自定义菜单


…………如此循环 -_-
发表于 2005-5-13 12:09:00 | 显示全部楼层
.....................................................................................................................


对不起偶说错了, 是acad.mns..


mnu文件不是加载时用的. CAD加载菜单是自动找mns文件, 然后找匹配的acad.mnc, 如果mnc文件比mns文件旧, CAD会自动编译mns, 然后载入..每次自动寻找的菜单文件是上一次加载过的菜单.
 楼主| 发表于 2005-5-13 22:16:00 | 显示全部楼层
acad.exe启动时不加载自定义的arx, acad.mnx已经被重写成顶楼帖中的样子
启动acad.exe 显示的菜单是菜单1(自定义菜单) 关闭后, 再启动acad.exe 这次显示菜单2(不明菜单) 关闭后, 再启动acad.exe 显示菜单1 如果显示菜单2 的时候用menu命令手动加载自定义菜单acad.mns/acad.mnc/acad.mnu(acad菜单被我重写过了) 将显示菜单1 关闭,再启动,又显示菜单2了 -_-
感觉acad.exe启动的是和上次关闭时候不同的菜单
下面是菜单1


下面是菜单2
发表于 2005-5-16 10:46:00 | 显示全部楼层
...汗..不应该这样的啊..菜单2是Windows MDI程序标准菜单, 说明CAD找不到应该加载的菜单文件..


怀疑是各个菜单文件之间不匹配造成CAD混乱. 把SUPPORT里面所有的acad菜单相关文件(.mnu, .mns., .mnc, .mnr, .mnl)都备份后删除, 然后把你的自定acad.mnu文件放进来, 再重启ACAD试一下.
发表于 2005-5-16 13:46:00 | 显示全部楼层
除了.mnu文件之外,其他全部删除,然后重新在CAD里键入menu命令,CAD会自动生成其他诸如.mns., .mnc, .mnr, .mnl文件的。再此启动后,就一直是你的菜单。


如果你用自己定义的菜单,重新启动CAD后,会自动找到你定义的菜单的路径的。


因为CAD注册表中已经记录下你定义菜单的路径了。


可以查看         工具--选项--文件--菜单、帮助和其他文件名称
 楼主| 发表于 2005-5-17 10:51:00 | 显示全部楼层
顶楼列出问题所在,


       


谢谢大家的帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 07:42 , Processed in 0.187688 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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