再探MFC(四)创建对话框

以点击菜单弹出非模式对话框为例.

step1

资源视图添加对话框模板.重命名对话框资源ID.

step2

选中对话框,右键菜单点击添加类.

step3

在菜单项的消息处理函数中

CDialogAddContactdlg;

INT_PTR nResponse =dlg.DoModal();

if (nResponse ==IDOK)

{

}

else if (nResponse== IDCANCEL)

{

}

可以通过DoModel创建模式对话框,通过Create创建非模式对话框.Remarks解释了两种对话框类型.Dialog
boxes are of two types: modal andmodeless. A modal dialog box must be closed by the user before the applicationcontinues. A modeless dialog box allows the user to display the dialog box andreturn to another task without canceling or removing the dialog box.

如何关闭对话框?Remarks介绍如下.

A modal dialog boxcloses automatically when the user presses the OK or Cancel buttons or whenyour code calls the EndDialog member function.

When you implement amodeless dialog box, always override the OnCancel member function and callDestroyWindow from within it. Don‘t call the base class CDialog::OnCancel,because it calls EndDialog,
which will make the dialog box invisible but willnot destroy it. You should also override PostNcDestroy for modeless dialogboxes in order to delete this, since modeless dialog boxes are usuallyallocated with new. Modal dialog boxes are usually constructed
on the frame anddo not need PostNcDestroy cleanup.

https://msdn.microsoft.com/en-us/library/132s802t.aspx

时间: 2024-08-07 23:15:32

再探MFC(四)创建对话框的相关文章

再谈MFC学习——模态对话框的数据传递

学习c++的目的就是为了使用封装好的类,而最最经典的封装类当然是微软的MFC窗口程序类.学习MFC编程之前要学习c++的主要知识,掌握c++的基本编程思想.下面就看下我学习的MFC模态对话框的数据传递. 首先,什么叫做模态对话框呢?模态对话框指的是当弹出这样的对话框的时候,程序不能相应除了此对话框外其他的窗口的响应,直到关闭了这个对话框,程序才能响应其他的对话框的响应.非模态对话框即使弹出也能响应程序其他的窗口而不需要等到此窗口的关闭.那么MFC中怎么才能弹出模态对话框呢?其实很简单,首先创建这

再探MFC(八)使用数据库

ADO包装类 A set of ADO classes - version 2.20 源文档 <http://www.codeproject.com/KB/database/caaadoclass1.aspx> 使用介绍 CADODatabase包装_ConnectionPtr,管理数据库连接. 连接数据库例子 //Sample withConnection string for SQL Server CADODatabase* pAdoDb= new CADODatabase(); CStr

再探MFC(五)状态栏

创建和初始化状态栏 step1 对话框添加变量 // 状态栏对象 CStatusBarm_wndStatusBar; step2 OnInitDialog调用 //创建和初始化状态栏 BOOLCLBDKFODlg::CreateStatusBar() { static UINT nIndicators[] = { ID_CALL_STATUS }; if (!m_wndStatusBar.Create (this)) return FALSE; m_wndStatusBar.SetIndicat

再探MFC(七)用户自定义消息

用途 回调函数通信 子对话框与父对话框通信,子对话框间通信 线程通信 用户自定义消息使用 step1 定义消息ID 例如Resource.h #define                LBD_SET_CALL_STATE_MESSAGE                (WM_USER+100) step2 消息处理 类视图选中要发往消息的对话框类,在属性视图中重写WindowProc 在TODO下添加代码处理用户自定义消息 switch (message) { caseLBD_SET_CAL

React.js再探(四)

不知道看官们还记不记得上一节的内容,关于生命周期的.我们来个例子重温且练习一下. 传送门:http://www.cnblogs.com/galenyip/p/4574400.html 我们来实现一下时钟的功能,要求当秒是“0”的时候,字体变为红色.注意用componentWillUpdate实现. 如       当秒是0   变为 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8&qu

【mfc】对于对话框程序的优化与为程序创建图表

本文是继上一篇<[mfc]Helloworld>(点击打开链接)所写出来的对话框进行了的优化, 这次要把这个对话框程序做得更加好. 一.基本目标 1.为这个对话框程序加上自己的图标,如下图: 2.不再是仅有一个让用户点击的对话框了,而且在用户点击确定与取消按钮之后能够进行判断 比如,用户点击了确定,则弹出用户点击了确定的提示 如果用户点击了取消,则弹出用户点击取消的提示 二.制作过程 1.首先像<[mfc]Helloworld>(点击打开链接)中,先新建一个简单的Win32工程,然

【转】VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)

原文网址:http://www.jizhuomi.com/software/153.html 前两讲中鸡啄米为大家讲解了如何创建对话框资源.创建好对话框资源后要做的就是生成对话框类了.鸡啄米再声明下,生成对话框类主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 因为鸡啄米给大家的例程Addition是基于对话框的程序,所以程序自动创建了对话框模板IDD_ADDITION_DIALOG,并自动生成了对话框类CAdditionDlg,它是从CDialogEx类派生的.大家用过VC++6.0

鸡啄米MFC教程笔记之四:对话框:创建对话框模板和修改对话框属性

---恢复内容开始--- 本节开始为大家讲解偏应用的知识-创建对话框. 对话框,大家应该很熟悉了,在我们常用的软件中大多都有对话框界面,例如,360安全卫士的主界面其实就是个对话框,只是它做了很多美工方面的工作,将其大大美化了. 创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:  第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 这里鸡啄米就再创建一个基于对话框的应用程序,用来实现加法运算的功能.如下:

VS2010/MFC对话框:创建对话框类和添加控件变量

创建对话框类和添加控件变量 前两讲中讲解了如何创建对话框资源.创建好对话框资源后要做的就是生成对话框类了.生成对话框类主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 例程Addition是基于对话框的程序,所以程序自动创建了对话框模板IDD_ADDITION_DIALOG,并自动生成了对话框类CAdditionDlg,它是从CDialogEx类派生的.大家用过VC++ 6.0的可能记得,我们定义的对话框类都是从CDialog类派生的,但在VS2010中,一般对话框类都是继承自CDia