- UID
- 180409
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-10-4
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我做了个无模式对话框,主要的实现步骤在下面,加载ARX后运行没什么问题,可卸载这个ARX程序时AUTOCAD也同时关闭,不知什么原因,向大家求助。
1、定义一个新类,这个类是从CAcUiDialog继承,(先插入一个对话框,然后用向导定义一个新类,注意设定visible的值.
2、对这个类增加承员函数
afx_msg LONG CMDwg::onAcadKeepFocus( UINT, LONG )
{
//return FALSE;
return TRUE;
}
3、为这个类增加消息
BEGIN_MESSAGE_MAP(CMDwg, CCAcUiDialog)
//{{AFX_MSG_MAP(CMDwg)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
ON_MESSAGE( WM_ACAD_KEEPFOCUS, onAcadKeepFocus )
END_MESSAGE_MAP()
4定义startdlg() 和enddlg全局函数 CMDwg*gpDlg全局变量
BOOL startDlg()
{
BOOL b = TRUE;
if(!gpDlg)
{
CAcModuleResourceOverride resOverride;
gpDlg = new CMDwg,(acedGetAcadFrame());
b = gpDlg->Create(IDD_DIALOG10 );
}
return b;
}
//
//
//
BOOL endDlg()
{
if(!gpDlg)
return TRUE;
BOOL b = gpDlg->DestroyWindow();
if(b)
gpDlg = NULL;
return b;
}
5、用startdlg启动对话框
6、用enddlg关闭对话框
void CMDwg::OnOK()
{
// TODO: Add extra validation here
endDlg();
CAcUiDialog::OnOK();
} |
|