用对话框指针来控制创建关闭和清除子对话框

MFC 对话框 工程.主对话框是A类的实例

A含有成员变量 指针*B  B也是一个对话框类

下面我们就利用这个指针 实现对子对话框的开启 关闭 和销毁

首先是结构上的准备工作,使两个类能够互相调用

添加Dialog_EX 类B

A

include "B.h"

public:

*B m_son;

init()

{

this->m_son-=NULL;

}

B

class A;

public:

*A m_father;

B.cpp

#include "A.h"

第一部分 创建(并显示)子对话框

A.cpp

if(this->m_son!=NULL)

{

::AfxMessageBox("m_son不等于NULL,不需要再创建");

}

else

{

::AfxMessageBox("m_son为NULL正在创建");

this->m_son=new B;
//在堆中创建

this->m_son->Create(IDD_SON);

this->m_son->m_father=this;
//建立联系

}

this->m_son->ShowWindow(SW_SHOW);

第二部分 关闭不销毁子对话框

B.cpp

void B::OnCancel()

{

//this->m_father->delete_son();

CDialogEx::OnCancel();

}

第三部分 关闭并销毁子对话框

B.cpp

void B::OnCancel()

{

this->m_father->delete_son();

//CDialogEx::OnCancel();

}

A.cpp

void A::delete_son()

{

delete this->m_son;

this->m_son=NULL;

}

时间: 2024-10-25 13:23:03

用对话框指针来控制创建关闭和清除子对话框的相关文章

Android对话框的两种创建方式

在Android中,我们可以通过两种方式来创建对话框: 1. 借助Dialog类,或它的子类(如AlertDialog) 2. 使用Activity的对话框主题 使用Dialog类: 让我们先来看下如何借助Dialog类创建对话框,首先,我们需要定义一个继承了Dialog类的子类: class MyDialog extends Dialog { public MyDialog(Context context) { super(context); } } 然后,为这个对话框的内容定义一个布局文件,

vc创建模态和非模态对话框

模态对话框的创建 创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能就是创建并显示一个模 态对话框,关闭模态对话框的函数是EndDialog,该函数需要一个参数,这个参数就是DoModal 函数的返回值. CTestDlg dlg;    dlg.DoModal();   //打开模态对话框 dlg.EndDialog(IDOK);//关闭模态对话框,相当于在模态对话框上点击了“确定”按钮 创建非模态对话框创建非模态对话框需要利用CDialog类的Create成员函数

对话框上动态控件的创建、在Picture Control控件上显示图片

1  MFC对话框之上的动态控件的创建 对话框上的控件是MFC类的一个具体对象. 当在对话框之上使用静态控件时,可以根据类向导来为每个控件添加消息.响应函数以及变量. 当需要在对话框中动态的创建某个控件时,就需要手动来代替类向导为动态控件添加消息.响应函数及变量. 动态创建控件时,可按照以下步骤进行: (1) 明确控件所属于的类 每一个控件都对应着一个类(例如按钮Button所属于的类为CButton). 如,在程序中我们需要用CButton类创建一个具体的按钮对象,并用函数指示它在对话框之上的

MySQL控制(关闭、打开)自动提交功能

在MySQL中执行命令时,通常都直接被确定提交了.也就是说用户不用意识此事,所有的命令都会被自动COMMIT.特别是当存储引擎为MyISAM的情况下,本身它是不支持事务处理的,只要执行了命令,所有的命令部会被提交. 这样的默认自动提交的功能就被称为自动提交功能.自动提交功能默认被置为ON的状态.但是,如果存储引擎为InnoDB 时,当执行了START TRANSACTION或BEGIN命令(MySQL事务处理-删除后回滚)后,将不会自动提交了,只有明确执行了COMMIT命令后才会被提交,在这之前

SharePoint 2010 中创建超链接到Pop-Up对话框

SharePoint 2010 中创建超链接到Pop-Up对话框 SharePoint 2010 推出了新式的带有阴影的弹出对话框,你感觉怎么样?我感觉倒是挺酷的.这样少打开了一个页面,省事多了,而且不会让用户迷惑,在不同页面中穿梭.问题是在你的页面中,如何创建自定义的超链接,放在Pop-Up对话框里呢? 其实方法真的很简单,使用一个SharePoint内置的JavaScript功能就可以了.(PS:在SharePoint 2010中测试可用,因为我没有2013..) 这里给出两种方法.加到快速

SchuledExecutorService 使用controller控制线程关闭

1:SchuledExecutorService  使用controller控制线程关闭 package com.li.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; impo

[C#][VB.NET]关闭程序时显示对话框,用以再次确认是否关闭

[C#][VB.NET]关闭表单时显示对话框,用以再次确认是否关闭 1. 问题描述 关闭程序时显示对话框,用以再次确认是否关闭 2. 方法 只要在 Form Closing 事件,显示 MessageBox,并且当使用者选择 否 时,让 e.Cancel = true 即可 C# 程序 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("是否确定要关闭程序&quo

弹出一个非阻塞对话框(在程序关闭后 仍然显示对话框)

今天有个小需求, 程序要求执行一个检测操作, 如果检测失败的话则弹出信息并且关闭程序 由于检测代码是封装到一个独立进程里的, 所以直接使用TerminateProcess(GetCurrentProcess, 0);来关闭当前进程 可是在测试时却发现, 原本使用MessageBox来弹出消息却会阻塞结束进程的操作 一般我们在系统里弹出对话框都是调用Windows.MessageBox, 这个方法在一般情况下, 可以不阻塞本程序的操作(虽然在代码层面仍然是阻塞的) 大家可以用一个小例子试试 pro

创建模态,非模态对话框

创建模态对话框 还要先包含新窗口窗口的头文件. CTestDlg dlg; CTestDlg=新创建的窗口类名 dlg.Domodal(); 创建非模态对话框 CTestDlg *pdlg=new CTestDlg; 最好在把 CTestDlg *pdlg=new CTestDlg;定义在视窗类构造函数 然后析构函数释放内存 pdlg->Create(IDD_DIALOG1,this); pdlg->ShowWindow(SW_SHOW);