乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 40|回复: 2

创建非模式对话框的一种方法

[复制链接]

32

主题

150

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
278
发表于 2003-4-12 18:23:00 | 显示全部楼层 |阅读模式
1、定义一个新类,这个类是从CDialog继承,(先插入一个对话框,然后用向导定义一个新类,注意设定visible的值.
2、对这个类增加承员函数
afx_msg LONG CMDwg:nAcadKeepFocus( UINT, LONG )
{
//return FALSE;
return TRUE;
}
3、为这个类增加消息
BEGIN_MESSAGE_MAP(CMDwg, CDialog)
//{{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全局函数
BOOL startDlg()
{
BOOL b = TRUE;
if(!gpDlg)
{
  CAcModuleResourceOverride resOverride;
  gpDlg = new CBoundAngle(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
//CDialog::OnOK();
CDialog::OnClose();
endDlg();
}
回复

使用道具 举报

6

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
38
发表于 2003-4-19 11:58:00 | 显示全部楼层
我有几点不明白
(1) WM_ACAD_KEEPFOCUS 消息是怎样的一个消息
(2) CAcModuleResourceOverride resOverride  ;
      gpDlg = new CBoundAngle(acedGetAcadFrame()); 这两句是什么意义?
gpDlg  是一个全局变量吧?
我是objarx的初学者还在看书中,问的问题可能显得有点幼稚;但望各位老师一定不吝指教啊
回复

使用道具 举报

11

主题

34

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-9-8 09:48:00 | 显示全部楼层
菜鸟必读,反复地读
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 14:08 , Processed in 0.224052 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表