C++ ARX二次开发-MFC 非模态对话框modaless dialog

一、本节课程
C++ ARX二次开发-MFC 非模态对话框modaless dialog

免费视频课程请关注   yunyou.ke.qq.com

、本节要讲解的知识点

显示一个非模态对话框的步骤和代码编写。

三、具体内容

1、思路:

显示一个非模式对话框:

yunyou.ke.qq.com

pDialog=new CModalessDlg(acedGetAcadFrame());

pDialog->Create(IDD_DIALOG_MODALESS);

pDialog->ShowWindow(SW_SHOW);

 

销毁对话框是需要关闭对话框,释放对话框的内存空间。

在关闭对话框的事件中,调用DestroyWindow函数来销毁对话框,重写对话框的PostNcDestroy函数,在这个函数里面要释放分配的内存空间。

非模式对话框修改图形数据库内容的时候,必须在操作之前锁定文档,操作完成之后解锁文档。

  1. 实现:
    (1)用向导建立一个项目叫做ModalessDialog,记得需要勾选使用MFC。
  1. 添加对话框资源和控件。yunyou.ke.qq.com

 

(3)为对话框添加类:CModalessDlg,添加成员变量,消息响应函数,具体过程见视频回放。

对应的头文件:yunyou.ke.qq.com

//-----------------------------------------------------------------------------

//----- ModalessDlg.h : Declaration of the CModalessDlg

//-----------------------------------------------------------------------------

#pragma once

 

//-----------------------------------------------------------------------------

#include "acui.h"

 

//-----------------------------------------------------------------------------

class CModalessDlg : public CAcUiDialog {

DECLARE_DYNAMIC (CModalessDlg)

 

public:

CModalessDlg (CWnd *pParent =NULL, HINSTANCE hInstance =NULL) ;

 

enum { IDD = IDD_DIALOG1} ;

 

protected:

virtual void DoDataExchange (CDataExchange *pDX) ;

afx_msg LRESULT OnAcadKeepFocus (WPARAM, LPARAM) ;

 

DECLARE_MESSAGE_MAP()

public:

CString m_strEnX;

CString m_strEnY;

CString m_strEnZ;

CString m_strStX;

CString m_strStY;

CString m_strStZ;

CAcUiPickButton m_btnPickSt;

CAcUiPickButton m_btnPickEn;

afx_msg void OnClickedButtonPickEn();

afx_msg void OnClickedButtonPickSt();

afx_msg void OnClickedButtonLine();

afx_msg void OnClickedButtonClose();

afx_msg void OnClose();

virtual BOOL OnInitDialog();

virtual void PostNcDestroy();

} ;

 

对应的cpp文件:yunyou.ke.qq.com

//-----------------------------------------------------------------------------

//----- ModalessDlg.cpp : Implementation of CModalessDlg

//-----------------------------------------------------------------------------

#include "StdAfx.h"

#include "resource.h"

#include "ModalessDlg.h"

#include "LineUtil.h"

extern CModalessDlg *pDialog;

//-----------------------------------------------------------------------------

IMPLEMENT_DYNAMIC (CModalessDlg, CAcUiDialog)

 

BEGIN_MESSAGE_MAP(CModalessDlg, CAcUiDialog)

ON_MESSAGE(WM_ACAD_KEEPFOCUS, OnAcadKeepFocus)

ON_BN_CLICKED(IDC_BUTTON_PICK_EN, &CModalessDlg::OnClickedButtonPickEn)

ON_BN_CLICKED(IDC_BUTTON_PICK_ST, &CModalessDlg::OnClickedButtonPickSt)

ON_BN_CLICKED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值