如何在ObjectARX中使用MFC

全部回答2
默认 最新
  • 偶猜你大概是觉得用mfc的图形界面做菜单比较直观吧) 如果是arx程序本身呼叫的对话框的菜单,直接创建mfc菜单资源和cacuidialog对话框(或者普通cdialog都可以),然后在对话框property里指定使用这个菜单资源就可以了。。如果是autocad的主菜单,用mfc是无法直接调出来图形界面修改的,autocad的主菜单修改直接改.mnu文件就好了,可以参考autocad help的customization guide。。但是如果你真的要用mfc做的话,差不多是这样。。设一个窗口指针一个菜单指针,用acedgetacadframe()之类的命令得到控制autocad的主窗口的一个cmdiframewnd指针,然后用这个指针抓取主菜单(getmenu),然后修改菜单,再setmenu回去到窗口里面。。大概的code是这样吧:cacmoduleresourceoverride res; // 避免资源冲突。。cmdiframewnd* pacadmain = acedgetacadframe();cmenu* pmenu = pacadmain->getmenu();pmenu->insertmenu(-1, mf_byposition, 0, "new") // 这些修改菜单的函数的具体用法可以自己参考vc++ help,这一个是在主菜单最后的位置添加一个什么用也没有的'new'项目,项目下面也是什么都没有啦。。pacadmain->setmenu(pmenu);
    0 点赞
  • 步骤一:新建基于MFC的ObjectArx项目, 打开资源视图添加一个对话框ID修改为IDD_ARX_MODAL(右击资源视图中的对话框打开属性面板,可以修改ID)  设计如图界面,ID如下:IDC_BUTTON_POINT  IDC_BUTTON_ANGLE  IDC_EDIT_XPT  IDC_EDIT_YPT  IDC_EDIT_ZPT  IDC_EDIT_ANGLE  选择两个Button把Owner Draw设置为True  完成界面。  步骤二:打开类视图,右击项目->添加类(这里不是右击对话框添加类)这张图有点小错误,这里Dialog ID:IDD_ARX_MODAL Class name:CArxDialog  在类视图中右击CArxDialog类添加变量这样会在头文件中生成源文件中生成根据这个规律添加其他变量  大气象 private: CAcUiPickButton m_btnAngle; CAcUiPickButton m_btnPoint; CAcUiNumericEdit m_editXpt; CAcUiNumericEdit m_editYpt; CAcUiNumericEdit m_editZpt; CAcUiAngleEdit m_editAngle;void CArxDialog::DoDataExchange (CDataExchange *pDX) { CAcUiDialog::DoDataExchange (pDX) ; DDX_Control(pDX, IDC_BUTTON_ANGLE, m_btnAngle); DDX_Control(pDX, IDC_BUTTON_POINT, m_btnPoint); DDX_Control(pDX, IDC_EDIT_XPT, m_editXpt); DDX_Control(pDX, IDC_EDIT_YPT, m_editYpt); DDX_Control(pDX, IDC_EDIT_ZPT, m_editZpt); DDX_Control(pDX, IDC_EDIT_ANGLE, m_editAngle);}  步骤三:  为CArxDialog添加InitDialog消息响应。  方法是打开类视图,右击->属性  再添加OnClose()响应函数  在头文件中添加几个变量  public:  CString m_strAngle;  CString m_strZPt;  CString m_strYPt;  CString m_strXPt;  在头文件中定义两函数 void DisplayPoint();  void DisplayAngle();  分别为两个按钮添加单击事件,为四个编辑框添加失去焦点事件。  步骤四:  打开acrxEntryPoint.cpp添加#include “ArxDialog.h”
    0 点赞

没有更多内容了

返回顶部
产品求购 求购