Windows编程基础--第5节 MFC对话框程序

模式对话框


对话框程序是MFC最重要的组成部分,也是Visual C++中唯一可以可视化设计的窗口程序,对话框主要有两类:

  • 模式对话框:必须关闭这个对话框才能继续操作父窗口或者上一级窗口
  • 非模式对话框:不影响父窗口或者上一级窗口,可继续操作父窗口或者上一级窗口,对话框程序也可以一直保留,无需关闭才能执行下一步;

接来下我们先一起学习模式对话框;

1. 新建项目

建立一个MFC的主对话框项目day04,参见上节,添加两个按钮,分别为“关于”,“聊天”,如图所示:
这里写图片描述

2. 添加关于对话框

在资源视图(ResourceView)中Dialog上右击->Insert Diallog,插入对话框,如图所示:
这里写图片描述
这里写图片描述

3. 添加关于对话框类

单击添加的关于对话框,执行View->Class Wizard,或者使用快捷键Ctrl + W打开类向导;
由于新的对话框不存在关联类,此时会提示创建一个与它相关联的类,选择Create a new class,单击OK创建关联类,如下图所示:
这里写图片描述
这里写图片描述
单击OK完成创建关联类;
这里写图片描述

3. 添加关于按钮消息事件

切换回主对话框,单击主对话框,执行View->Class Wizard,或者使用快捷键Ctrl + W打开类向导;选择关于按钮,增加clicked方法,然后Edit Code编辑关于按钮的响应方法,或者可以直接双击“关于”按钮就可以直接进入按钮点击方法,在day04Dlg.h中添加“#include AboutDlg.h”来引入对话框类,然后我们来编辑关于按键方法,创建一个模式对话框;

void CDay04Dlg::OnButtonAbout() 
{
    // TODO: Add your control notification handler code here
    CAboutDlg dlg;
    dlg.DoModal();
}

效果图:
这里写图片描述
至此,一个模式对话框就创建成功了,我们可以看到,我们必须关闭关于对话框,才能单击主对话框。

非模式对话框

现在我们来创建一个非模式对话框;

1. 添加聊天对话框

在资源视图(ResourceView)中Dialog上右击->Insert Diallog,插入对话框,如图所示:
这里写图片描述

2. 添加聊天对话框类

单击添加的关于对话框,执行View->Class Wizard,或者使用快捷键Ctrl + W打开类向导;
由于新的对话框不存在关联类,此时会提示创建一个与它相关联的类,选择Create a new class,单击OK创建关联类,如上面步骤3

3. 添加聊天按钮消息事件

切换回主对话框,单击主对话框,执行View->Class Wizard,或者使用快捷键Ctrl + W打开类向导;选择聊天按钮,增加clicked方法,然后Edit Code编辑关于按钮的响应方法,或者可以直接双击“聊天”按钮就可以直接进入按钮点击方法,在day04Dlg.h中添加“#include “Chat.h””来引入对话框类,然后我们来编辑聊天按键方法,创建一个非模式对话框;

void CDay04Dlg::OnButtonChat() 
{
    // TODO: Add your control notification handler code here
    CChat * pDlg = new CChat;
    pDlg->Create(IDD_DIALOG_CHAT);
    pDlg->ShowWindow(SW_SHOW);
}

效果图:
这里写图片描述
这里写图片描述
至此,一个非模式对话框就创建成功了,我们可以看到,我们打开聊天界面后还可以继续操作父窗口中的关于对话框,甚至还可以单击聊天对话框创建多个聊天界面;
这里写图片描述

项目源码可以访问我的码云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值