MFC 设计对话框资源

原创 2015年07月08日 16:19:45

1*- 利用资源视图向导创建对话框资源

首先在资源视图中创建一个对话框资源
在属性框中设置好ID例如IDD_BOOKDLG。

右键新建的对话框,点击添加类
这里写图片描述

在类中设置好Name 例如CBook 完成,这样对话框类CBook与对话框资源IDD_BOOKDLG就建立了关联。

2*-创建并显示对话框

(方法一)创建模式对话框
双击主窗口的按钮,转到代码页后,先 在头部引用头文件
#include "Book.h"
接着在按钮响应事件中输入以下代码

void CMFC测试Dlg::OnBnClickedOk()
{
        CBook Book;     //定义CBook对象
        Book.DoModal(); //调用DoModal方法显示模态对话框
}

在新建的对话框关闭前无法激活朱对话框,因为新创建的对话框是模式对话框。即利用new运算符来构建对象,使用delete运算符来释放对象。

CBook *pBook=new CBook();
pBook->DoModal();
delete pBook;

(方法二)创建非模式对话框

进入主对话框类定义的头文件部分,引用对话框类CBook的头文件

#include "Book.h"

这里写图片描述

在对话框类中定义一个CBook类型的成员变量

private:
        CBook m_Book;      //添加CBook类型的成员变量

这里写图片描述

回到资源视图中,点击主窗口中的按钮,编写按钮的单击事件代码,

void CMFC测试Dlg::OnBnClickedOk()
{
        m_Book.Create(IDD_BOOKDLG,NULL);   //创建对话框
        m_Book.ShowWindow(SW_SHOW);        //显示对话框
}

此时就可以进行对话框切换,将主对话框激活,但是当吧非模式对话框关闭后,在单击按钮时将会出现错误。

这是因为关闭非模式对话框时,只是隐藏了对话框,二没有销毁由create方法创建的对话框资源,此时在调用create方法创建对话框时,由于当前的m_Book对象已经有了关联的对话框,因此导致了上述错误,解决方法如下

void CMFC测试Dlg::OnBnClickedOk()
{
    if (!IsWindow(m_Book.m_hWnd))           //是否关联对话框了
    {
        m_Book.Create(IDD_BOOKDLG, NULL);   //创建对话框
    }       

    m_Book.ShowWindow(SW_SHOW);             //显示对话框
}

使用IsWindow函数来判断m_Book对象是否关联了对话框,如果没有,在调用create方法创建对话框。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

dll封装MFC对话框资源

  • 2015-12-11 16:41
  • 16.59MB
  • 下载

基于MFC的对话框设计

  • 2015-07-11 14:17
  • 352KB
  • 下载

MFC对话框中的工具栏、状态栏设计小结

对网上的资料结合自己的实践的总结,由于大部分都是网上先辈们的经验,这里只是直接将内容拿来,格式优化一下更易读而已。对话框中建立工具栏的方法工具栏中包含了一组用于执行命令的按钮,每个按钮都用一个图标来表...

MFC设计局域网对战五子棋游戏(三)构造游戏主对话框

游戏对话框的构造函数:   CWZQDlg::CWZQDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CWZQDlg::IDD, pParent), m_game...

vc--基于mfc对话框的手柄遥控机器人界面设计(二)

曾经觉得手柄来遥控玩具小车不明觉厉,现在我也能呵呵了。不过用无线来遥控机器人的话,一般要用ZigBee或者无线串口来实现通信了,无线串口还试了一下,和有线的是差不多的,实验室用的是ZigBee,这一块...

Visual C++6.0 程序设计从入门到精通(四) - MFC类对象和资源之间的关系

1. MFC类对象和资源的介绍MFC类对象指的是MFC中各种基类的对象,如 CWnd, CToolBar等;而资源指的是用户在客户端所看到的各种窗口界面,包括窗口,各种控件,文档等。2. MFC和资源...

MFC应用程序设计资源

  • 2014-09-23 19:35
  • 25.50MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)