博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
非模态窗口的创建方法
阅读量:6909 次
发布时间:2019-06-27

本文共 1251 字,大约阅读时间需要 4 分钟。

粘贴一些关键代码(IN  FILE_MYBOLE):

CMyboleView窗口类中

void CMyboleView::OnMenuDialog(){    // TODO: 在此添加命令处理程序代码    //非模态对话框的使用,要更改 OnOK 这个虚函数    if(m_pDlg)    {        m_pDlg->SetActiveWindow();    }    else    {        m_pDlg = new CTestDlg(this);        m_pDlg->Create(IDD_ONE_DLG, this);        m_pDlg->ShowWindow(SW_SHOW);    }}

初始化指针CTestDlg类的对象指针为NULL

CMyboleView::CMyboleView(){    // TODO: 在此处添加构造代码    m_pDlg = NULL;}

然后处理OK或者Cancel按钮

Cancel

void CTestDlg::OnCancel(){    // TODO: 在此添加专用代码和/或调用基类    //CWnd *p1 = GetParent();    //CWnd *p2 = m_pParentWnd;    //CWnd *p3 = GetParentFrame();    //CWnd *p4 = GetParentOwner();    //CWnd *p5 = GetOwner();        //获取CTestDlg的指针有两种方法,都可以用,但是必须用m_pParentWnd,不能用GetParent    //方法一:    /*CMyboleView *pFather = (CMyboleView *)m_pParentWnd;    pFather->m_pDlg = NULL;*/    //方法二:    ((CMyboleView *)m_pParentWnd)->m_pDlg = NULL;    DestroyWindow(); //删除对话框,但没有删除对话框对象}

OK

void CTestDlg::OnOK(){    // TODO: 在此添加专用代码和/或调用基类    ((CMyboleView *)m_pParentWnd)->m_pDlg = NULL;    DestroyWindow(); //删除对话框,但没有删除对话框对象}

最后重写PostNcDestroy用来真正的销毁CTestDialog对象

void CTestDlg::PostNcDestroy(){    // TODO: 在此添加专用代码和/或调用基类    delete this;    CDialogEx::PostNcDestroy();}

 

转载于:https://www.cnblogs.com/develop-me/p/5744837.html

你可能感兴趣的文章
矩形运算
查看>>
解剖SQLSERVER 第二篇 对数据页面头进行逆向(译)
查看>>
处理dataTable的行和列数据
查看>>
JavaEE填空与判断
查看>>
成果展示-RSA算法工具
查看>>
Sitecore标准模板字段
查看>>
poj 1088 滑雪
查看>>
《内向者的优势》读书笔记
查看>>
卡方检验(Chi-square test/Chi-Square Goodness-of-Fit Test)
查看>>
单例模式的七种写法
查看>>
CommonJS
查看>>
.iOS APP Project or Mac APP Project编译错误提示: My Mac 64-bit is not valid for Running the scheme...
查看>>
深入Django ORM的继承关系
查看>>
初始化ArrayList的两种方法
查看>>
想要装逼,全靠3D
查看>>
为什么说我们需要软件架构图?
查看>>
NIKE旗下品牌JORDAN发力新零售 ,瞄准了天猫小黑盒
查看>>
智能汽车真的来了!百度福田超级卡车亮相百度云智峰会
查看>>
OPPO R17|R17 Pro新年版首销火爆,2019最应景的新年礼物
查看>>
华为消费者业务公布2017上半年智能手机收入暴涨
查看>>