- 浏览: 16421 次
最新评论
MFC对话框程序基础复习001
2011年04月23日
对话框基础复习一 2011.4.21
对话框有两种:
一种是模态对话框(Modal['məudl]),其中模态对话框显示时候,程序的其他的在对话框之外都不可操作,只有关闭了模态对话框才可以继续操作,例如文本工具的“打开对话框”。
一种是非模态对话框(Modeless),非模态对话框跟用户对程序其他操作没有影响,例如文本工具的“查找对话框”。
MFC中对资源的操作都是通过一个与资源相关的类来完成的。
模态对话框用DoModal来显示,非模态对话框用Create来生成,用ShowWindow来显示。
指针是在堆上分配内存的,和程序的整个生命周期一致(假设你不主动注销)。
void CEasyDialogView::OnDialog()
{
// TODO: Add your command handler code here
CTestDlg *pTestDlg = new CTestDlg();
pTestDlg->Create(IDD_DIALOG1, this);
pTestDlg->ShowWindow(SW_SHOW);
}
这样是可以显示出Modaless对话框的,但是,这个函数的生命周期结束之后,pTestDlg销毁了,你就找不到刚才分配出来的内存空间了。
查MSDN可知道,在Modaless对话框的“OK”按钮并不会销毁窗口,要重写OnOK函数在其中加入DestroyWindow才能使得窗口销毁。
其中IDC_STATIC 这个ID号是规定了用来标识一些静态的做标识的文本的,所以在ClassWizard中看不到它,所以要操作的话就要改成其他的ID号。想要静态文本响应鼠标的消息,就要在属性对话框中选中Notify选中。
逗号表达式:用逗号来隔开多个表达式,整个逗号表达式的值就是最后一个表达式的值。
获取一个Item里的文本或数据的信息的函数有如下:
GetDlgItem()->GetWindowText();
GetDlgItemText()
GetDlgItemInt()
可以用 关联控件值(value)变量 来对进行特定的操作,如文本输入框的文本。
直接操作关联的控件值变量是没有效果的,因为没有进行控件的updata操作。
所以要在头尾加上UpdateData(TURE)和UpdateData(FALSE)函数。
UpdateData(TURE)表明当前函数正在获取控件的数据。
UpdateData(FALSE)表名当前函数已经在初始化控件的数据了。
关联控件控制(control)变量 是对控件本身的对象的关联,操作这个变量就是操作了控件的本身,所以不用Update也行。
mfc提供了 DDX - Dialog Data Exchange 对话框数据交换
DDX - Dialog Data Validation 对话框数据校验
这些函数是一DDX_ DDV_作前缀的。
可以用消息来对控件来进行操作。例如:文本框的操作
WM_GETTEXT, WM_SETTEXT
设置文本框的复选部分:EM_GETSEL, EM_SETSEL
①::SendMessage()
②用本身关联的空间控制变量来使用如:m_edit.SendMessage();
③SendDlgItemMessage()直接向Item发送消息
SendMessage 与 PostMessage的区别
PostMessage只负责将消息放到消息队列中,不确定何时及是否处理
SendMessage要等到受到消息处理的返回码(DWord类型)后才继续
PostMessage执行后马上返回
SendMessage必须等到消息被处理后才会返回。
GetWindowRect 是用来获取窗口的矩形区域。
IsRectNull 判断区域是否为空
SetWindowPos/DeferWindowPos 设置窗口的位置
BingWindowToTop 把窗口置于顶层
SetForegroudWindow 设置前台窗口
SetWindowLong 可以用来设置窗口的属性
LONG SetWindowLong(
HWND hWnd, // handle to window
int nIndex, // offset of value to set
LONG dwNewLong // new value
);
当 nIndex 为 GWL_WNDPROC就可以重设一个窗口过程,返回先前的窗口过程,设置一个窗口过程,就可以响应一些别的消息
SetFocus 设置窗口的焦点
GetNextWindow 可以获取下一个窗口的句柄
GetWindow 获取特定关系的窗口句柄,包含上面的
GetNextDlgTabItem 获取下一个 可获取tab键转移的 Item
在控件属性页里 有个 Tab Stop 可以选,转中后就可以转移到这个按键
在 Layout菜单 中的TabOrder 选项选中,就可以设置tab的顺序了,很方便。
编辑框 不选中 多行 MultiLine 是不会响应回车消息的。
在MFC生成的对话框程序里,默认OK 按钮,默认回车按钮的ID就是IDOK(指没有设置DefaultButton的时候)。
发表评论
-
使用Flex实现FTP文件上传功能
2012-01-20 01:27 692使用Flex实现FTP文件上传功能 2011年04月12日 ... -
The architecture of Flex and Java applications two (Flex 和 Java 应用程序架构 2)
2012-01-20 01:27 526The architecture of Flex and Ja ... -
flex 打印 预览
2012-01-20 01:27 748flex 打印 预览 2011年03 ... -
在Flex Mobile中构建“本地”菜单
2012-01-20 01:27 895在Flex Mobile中构建“本地”菜单 2010年12月 ... -
Flex4中 一个使用Module的例子
2012-01-20 01:27 1050Flex4中 一个使用Module的例子 2011年02月2 ... -
python 常用类库!(转)
2012-01-19 09:17 2351python 常用类库!(转) 2011年01月21日 ... -
2011-10-10program
2012-01-19 09:17 6532011-10-10program 2011年10月10日 ... -
MFC----对话框(一)
2012-01-19 09:17 796MFC----对话框(一) 2011年0 ... -
vc++ 向其他进程注入代码的三种方法(转)
2012-01-19 09:17 961vc++ 向其他进程注入代码的三种方法(转) 2010年06 ... -
PRO/E配置文件选项
2012-01-17 01:50 839PRO/E配置文件选项 2010年08月08日 PRO/ ... -
一些工具集合
2012-01-17 01:50 732一些工具集合 2010年11月13日 【显示工具】 ... -
qt中文
2012-01-17 01:50 780qt中文 2011年06月09日 QDataStream ... -
装机必备检测软件全集
2012-01-17 01:50 800装机必备检测软件全集 ... -
3D MAX 常见小问题集合三
2012-01-17 01:50 7533D MAX 常见小问题集合三 ... -
FLEX做的网站
2012-01-15 21:01 627FLEX做的网站 2011年05月1 ... -
Flex开源项目网址列表
2012-01-15 21:01 714Flex开源项目网址列表 2011年06月19日 1. ... -
FLEX地图应用教程之一
2012-01-15 21:01 519FLEX地图应用教程之一 2 ... -
flex类网站收集
2012-01-15 21:01 537flex类网站收集 2010年10月22日 1. Fle ... -
用flex开发 google map应用程式
2012-01-15 21:01 764用flex开发 google map应用程式 2009年09 ...
相关推荐
mfc对话框程序退出弹出确认对话框,最简单的范例,没有多余代码,就是相应了ON_WM_CLOSE()消息
MFC对话框程序键盘消息响应与快捷键的实现代码案例
研究了网上大量的MFC对话框打印及打印预览功能的demo之后,网上现有的版本都比较旧,所以选中了几个版本,合并修改,得到这个比较完美的最新版本,编译无错,成功运行。 VS2017 MFC
MFC 对话框打印程序实例、VC、对话框
利用MFC实现的对话框操作,通过不同的控件的设置控制不同的绘图条件。对基本的控件都有涉及。
给出了VC/MFC中关于对话框程序设计的29个实例,(包括模态对话框的设计和非模态对话框设计),实例包括对话框的动态设计 对话框外形及应用设计,按钮设计,背景设计,本资源是学习VC/MFC对话框编程的很好资料,需要...
MFC对话框程序若干问题,介绍了MFC对话框程序存在的若干个问题
主要介绍各个控件的使用,VS2010做的。
MFC 对话框 VS2013 实现一个加法计数器的功能
在win32工程中调用MFC对话框Dialog!注意加载加载MFC动态dll
一个MFC基于对话框程序使用IE控件加载浏览器,加载完成后可以点击按钮,找到你想要的网页和网页元素例如(百度一下、下一页等)。
简洁实现 MFC对话框实现全屏,覆盖任务栏,更改对话框客户区颜色
MFC中基于对话框程序快捷键的实现 MFC中基于对话框程序快捷键的实现 MFC中基于对话框程序快捷键的实现
在MFC对话框中使用OpenGL编程
多线程解决mfc对话框未响应、卡死问题
一个关于MFC对话框相关编程的很好的入门教程,很详细,ppt中包括源码及截图,主要章节如下: 1. MFC及对话框概念 2. Dialog项目的创建与修改 3. MFC的消息处理 4. MFC控件数据交换
基于MFC对话框,多线程播放背景音乐,虽然比较简单,但还是能够比较好的实习基本功能。存在一个小bug,但不影响功能。得分记录是通过数据库实现的。
建立MFC的单一对话框,实现单击菜单项弹出一个对话框。
文档提供了一种如何给MFC对话框添加背景图片的方法,希望对大家有帮助