MFC 基础知识:主对话框与子对话框(二)

(仅供使用VS MFC初学者学习,高手莫见笑)
接"MFC 基础知识:主对话框与子对话框(一)"的内容
在"MFC 基础知识:主对话框与子对话框(一)"中Edit Control(编辑框)控件中输出内容,主要是想讲讲在创建的子对话框中如何实现一些操作:即添加OnInitDialog初始化函数的操作,这里的操作VS2012与VC++6.0略有些改动.

一. 主对话框编辑框中输出内容

1.找到主对话框XXXDlg.cpp中的OnInitDialog()初始化函数,在函数注释“//TODO:在此添加额外的初始化代码”后面添加显示在Edit中的代码。

//获取编辑框ID并显示内容
GetDlgItem(IDC_EDIT1)->SetWindowText(_T("在主对话框编辑框Edit中显示"));
如下图所示:

如果要在中文后面输出变量的值,用CString::Format()
CString str;
str.Format( _T("数值=%d"),1000
);
GetDlgItem( ID_EDIT )->SetWindowText( str);

2.运行结果如下图所示:

注意:_T()表示UNICODE编码的TEXT,如果不是UNICODE不用_T(),通常在创建工程时把“使用Unicode库”前面的勾去掉。

3.编辑框实现换行的两种方法:
输入换行:设置编辑框的属性:Mutilines->true;Want return->true
输出换行:将控件的属性设置为Mutilines->true;输出字符串换行符”\r\n”(回车换行),而不是”\n”。

注意:设置Edit为只读采用的方法是设置它的属性Read Only->true,y也可以类向导中添加CEdit类变量m_edit,通过调用函数设置m_edit.XXX.

二. 子对话框编辑框输出内容

MFC新建的子对话框中通常没有用于初始化对话框的OnInitDialog()函数,需要手动添加,通过打开类向导方式添加。

在VC6中的方法是:查看->建立类向导(快捷键Ctrl+W打开类向导)->Message Maps->选择Classname->Objects IDs 选择对话框的ID->Messages中选择WM_INITDIALOG->点击Add Function即可。

1.为子对话框添加OnInitDialog()函数:在VS2012类向导(快捷键Ctrl+Shift+X)Class Wizard中没有VC6中的WM_INITDIALOG消息响应,而是采用虚函数中OnInitDialog()函数添加,如下图双击OnInitDialog添加初始化函数。
(注意:是向CSubDlg子对话框类添加该函数)

2.在“已重写的虚函数”中双击OnInitDialog会自动在SubDlg.cpp中建立一个初始化函数,如下图所示,我保留一个return true。

3.添加代码

GetDlgItem(IDC_EDIT1)->SetWindowText(_T("子对话框\r\n编辑框Edit中显示属性"));

4.运行结果如下图所示:

注意:如果出现error:“DDX_Control”不能将参数3从CString转换为CWnd&见:
http://blog.csdn.net/eastmount/article/details/9052735
这里要感谢很多博主,它们让我学到了很多知识,最后高手莫见笑,希望能帮助到大家吧!若有错误见谅.
(2013-6-8 夜3点 By:Eastmount)

 

时间: 2024-09-23 17:14:08

MFC 基础知识:主对话框与子对话框(二)的相关文章

MFC 基础知识:主对话框与子对话框(一)

(仅供使用VS MFC初学者学习,高手莫见笑)在MFC中通常会使用点击一个按钮,弹出一个子对话框的基础知识,这些都是学习MFC的基础知识,也是非常重要的知识,这里我就简单的讲讲这些知识. 一. 设置主对话框 1.文件-新建项目(我设置的过程名为:EditSet)-MFC应用程序-该页面使用"基于对话框"-完成即可.2.在"资源视图"中打开Dialog对话框,删除"TODO:在此处放置对话框控件"和"确定"."退出&q

MFC 基础知识:对话框背景添加图片和按钮Button添加图片

        很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任何知识一段时间过后都比较容易忘记,但回顾起来还是很有印象的.        这篇文章主要是回顾以前的MFC基础知识,给对话框添加背景图片和给按钮button添加背景图片:希望此篇基础性文章对大家有所帮助!同时为下次做MFC相关知识提供点此时所想所感吧.内容比较简单,高手飘过~ 一. 对话框背景添加图片         首先

C# 基础知识 (三).主子对话框数值传递

在C# winform编程中,我们经常会遇到不同窗口间需要传递数值的问题.比如数据库的应用,主窗口填写内容num1,点击按钮,在弹出的子窗口显示对应num1值;或者在子窗口填写新注册用户名信息,在主窗口的dataGridView动态变化显示着新添加\修改的值;或者在修改信息时,输入用户编号"000001"在对应textBox中它的相应数据.显示如下图所示: 以上应用都涉及到如何在两个不同窗口间传递数值,并实现动态的更新,下面就介绍我请教同学学到的一种主子对话框数值传递的知识,仅供大家学

在MFC单文档程序中,如何在子对话框类中访问视类中的一个变量?

问题描述 在MFC单文档程序中,如何在子对话框类中访问视类中的一个变量? 如题,小弟最近遇到一个问题,新建一个单文档程序,并在其中引入对话框资源.我想在视类的OnDraw()函数中通过响应视类的一个变量的变化来改变视类窗口中图形的状态,而该视类变量的变化是由对话框中的一个控件控制的,这个控件是由旋钮控件和编辑控件捆绑而成的.在网上看了一些资料,试了其中的一些方法,都没能成功.论坛中高手众多,想请热心的高手们给个解决方法,在此先谢过了!能给个相似的例子的更好! 解决方案 要么你把那个变量定义成静态

c++-MFC对话框程序通过按钮弹出子对话框,如何初始化子窗口

问题描述 MFC对话框程序通过按钮弹出子对话框,如何初始化子窗口 要实现的功能就是点击按钮,用dlg.DoModal()弹出子对话框,在子对话框中有CListControl控件,要对CListControl控件进行数据的初始化,但是无法对其进行初始化.子对话类中已经添加了OnInitDialog()方法,感觉没有执行这个方法,求解. 点击按钮事件代码: void CMFCPaikeDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 CDialogEx::

用JavaScript实现对话框的教程_基础知识

 JavaScript支持三种重要类型的对话框.这些对话框可以用来引发和警报,或得到确认的任何输入或有来自用户的一种输入. 在这里,我们将一个一个地来看每个对话框:Alert 对话框: 一个警告对话框,主要是用来给一个警告信息给用户.就像如果一个输入字段要求输入一些文字,但用户不输入字段则作为验证,可以使用警告框,如下给出警告信息的一部分: <head> <script type="text/javascript"> <!-- alert("Wa

JavaScript 对话框和状态栏使用说明_基础知识

今天为大家简单介绍一下 JavaScript 对话框和状态栏. javascript 与 对话框: 三种对话框图示: 在客户端浏览器中,三种常见的Window方法用来弹出简单对话框,它们分别是 alert(),confirm()和prompt().alert()用于向用户显示消息.confirm()要求用户点击确认或取消.prompt()要求用户输入一个字符串.下面的三幅图分别为alert(),confirm()和prompt(). alert()对话框提示 confirm()对话框提示 pro

mfc初学者,想做一个基于对话框的类似搜索引擎的程序,有没有功能相近源代码借鉴一下

问题描述 mfc初学者,想做一个基于对话框的类似搜索引擎的程序,有没有功能相近源代码借鉴一下 关于注册时的用户名密码怎么存啊,数据库怎么用啊,搜索的文件放哪啊等等问题,不胜感激 解决方案 最简单的是嵌入一个webbrowser控件,链接到网站上. 解决方案二: 建议楼主先参考书籍去MFC 体验一下控件的使用和相关响应函数的编写吧,先动手操作再想思路 解决方案三: 先学好基础再想做实际程序,数据库怎么用这些不是一两句话能说清楚的

MFC中CWnd类及其派生类对话框、消息处理、窗口操作

http://hi.baidu.com/xiaorida21/blog/item/8d8eb77a22eedee52e73b39e.html CWnd类 我们在屏幕上看到的所有对象都和窗口有关,它们或者派生于CWnd,属继承关系,如对话框.工具栏.状态栏.子控件:或者被CWnd合成,属服务员与服务对象关系,如图标.菜单.显示设备. CWnd类封装的窗口操作主要包含窗口的创建和销毁.操作窗口风格.操作窗口状态.窗口子类化.获取指定窗口等. 当然,CWnd还实现了其他功能: 1.绘制窗口 GetDC