AutoCAD ObjectARX 二次开发实例(1)
用ObjectARX进行CAD的二次开发,程序员特别关心用户界面的问题,像对话框,菜单等,下面的以ARX开发包的实例为例,说明ARX的CAD二次开发中的界面问题。
上下文菜单(Context Menu)
以SDK中ContextMenu例子为例。
ARX中的上下文菜单(快捷菜单)的实现主要与AcEdUIContext类有关。需注意的是,虽然对菜单项的数目没有限制,但菜单项中只能包含文本。可以有层叠菜单。你的ARX
程序提供的快捷菜单项不包含键盘加速键,并且对于新添加的菜单项,状态栏中没有帮助提示(这点有点怀疑,因为我并没有在资源中加菜单项的提示字符串,但在程序
运行过程中有一些不知哪来的字符串显示于状态栏中)。
ARX的上下文菜单有三种模式:
1、默认模式:当没有命令运行,并且没有pick first选择集时,用户右击出现的快捷菜单中包含的标准项从.MNU文件中的CMDDEFAULT POP菜单读出的。你的ARX程序可以
加入菜单项到此时的快捷菜单中,但此菜单项是以一个子菜单的形式加入的,具体的项目可加到这个子菜单的层叠菜单中。你的ARX程序必须为这个子菜单项提供菜单资
源,并通过一个CMenu指针和HMENU变量对菜单进行控制,同时要提供必要的回调函数,以响应菜单命令。若在程序中没有指定子菜单名字,那最高层项目(就是子菜单名
,与标准项目位列在一起)就是ARX程序的名字。
创建默认模式的上下文菜单的步骤:
a.从AcEdUIContext派生一个类,并用资源编辑器编辑好菜单。
b.在此类的构造函数中载入指定的菜单,并在析构函数中作好清理工作,如下。
//构造函数