Windows 编程之 对话框总结
关于对话框
1 对话框种类
对话框也是一种资源,Windows中对话框分为模态的和非模态的,以及Windows系统中已经定义好的那些通用对话框,比方打开文件,目录,调色板,字符串查找等。
2 模态对话框和非模态对话框的差别
模态对话框就是那种你打开后必须关了才干转到主窗体的那种类型;非模态对话框就是即便打开了对话框,你依旧能够在主窗体中指指点点的那种类型。
3 模态对话框的创建及弹出
<1>
INT_PTR DialogBox(
HINSTANCEhInstance, // handle to module
LPCTSTR lpTemplate, //dialog box template
HWND hWndParent, //handle to owner window
DLGPROC lpDialogFunc // dialog box procedure);
<2>
INT_PTR DialogBoxIndirect(
HINSTANCEhInstance, // handle to module
LPCDLGTEMPLATE lpTemplate,// dialog box template
HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc // dialog box procedure);
<3>
INT_PTR DialogBoxIndirectParam(
HINSTANCE hInstance, // handle to module
LPCDLGTEMPLATE hDialogTemplate, // dialog box template
HWNDhWndParent, // handle toowner window
DLGPROC lpDialogFunc, // dialog box procedure
LPARAM dwInitParam //initialization value);
<4>
INT_PTR DialogBoxParam(
HINSTANCEhInstance, // handle to module
LPCTSTR lpTemplateName, // dialog box template
HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc, //dialog box procedure
LPARAM dwInitParam // initialization value);
当中DialogBox和DialogBoxParam是从资源中载入对话框,其余两个是从内存中载入对话框。在这里面要注意的一个參数就是DLGPROC lpDialogFunc,函数原型是:
INT_PTR CALLBACK DialogProc(
HWNDhwndDlg, // handle to dialog box
UINT uMsg, //message
WPARAMwParam, // first message parameter
LPARAM lParam //second message parameter);
这个回调函数跟窗体回调函数非常类似,可是函数的返回类型不一样。
4 模态对话框的消息处理
DialogProc非常像WindowProc,但它不是WindowProc,对话框的WindowProc在Windows内部定义,它会调用DialogProc函数。
BOOL CALLBACK DlgProc(HWND hdlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
caseWM_INITDIALOG:
returnTRUE;
caseWM_COMMAND:
switch(LOWORD(wParam))
{
caseIDOK:
EndDialog(hdlg,0);
break;
}
break;
}
returnFALSE;
}
WM_INITDIALOG消息会在对话框创建的时候发送,在此消息下能够用来初始化对话框中的各种控件。
5 模态对话框的关闭
BOOL EndDialog( HWND hDlg,INT_PTR nResult);
指定创建对话框的函数的返回值。
6 利用控件创建复杂对话框
7 模态对话框中自己定义控件
既然是自己定义控件,那么必须在要进行窗体的设计,窗体的注冊,以及配置响应的窗体过程函数。
制作步骤:
<1>在工具箱中找到custom control,将其拖拽到面板中
<2>点击属性,指定起class名称,以及ID
<3>在WinMain函数中进行设计注冊
<4>指定其窗体过程函数
Windows 编程之 对话框总结的更多相关文章
- 【Windows编程】系列第八篇:通用对话框
上一篇我们学习了菜单的基本编程,本篇来了解一下通用对话框的使用.Windows系统之所以是目前最流行的桌面系统,也是因为Windows有一套标准化,统一友好的交互界面,比如菜单.工具栏.状态栏以及各个 ...
- 4.使用CFileDialog打开文件对话框,获得文件路径 -windows编程
引言:没想到2022年还有很多工业软件公司依然使用MFC,微软也一直在更新MFC的库,这次使用MFC封装的CFileDialog类,写一个获得选定文件路径,名称,扩展名的程序. 个人技术博客(文章整理 ...
- 【Windows编程】系列第七篇:Menubar的创建和使用
上一篇我们学习了利用windows API创建工具栏和菜单栏,与上一篇紧密联系的就是菜单栏,菜单栏是一个大多数复杂一些的Windows应用程序不可或缺的部分.比如下图就是Windows自带的记事本的菜 ...
- 【Windows编程】系列第九篇:剪贴板使用
上一篇我们学习了常见的通用对话框,本篇来了解剪贴板的使用,它常用于复制粘贴功能. 剪贴板是Windows最早就加入的功能,由于该功能非常实用,我们几乎每天都会使用到.通过剪贴板,我们就可以将数据从一个 ...
- Windows编程入门程序详解
引用:http://blog.csdn.net/jarvischu/article/details/8115390 1. 程序 /******************************* ...
- 设置windows窗口ICON 【windows 编程】【API】【原创】
1. ICON介绍 最近开始接触windows 编程,因此将自己所接触的一些零散的知识进行整理并记录.本文主要介绍了如何更改windows对话框窗口的ICON图标.这里首先介绍一下windows IC ...
- windows编程经典书籍
本人是刚刚开始学习windows编程的,感觉看雪学院的大牛很NB.想找一些书籍来看学习学习,可是不知道看哪些书好.驱动,对菜鸟们来说真是一个很深奥的话题,所以 ,我找来了这篇文章供大家分享,以后大家发 ...
- windows编程中的数据类型
在windows编程中,有许多奇怪的数据类型,初学者不知道这些代表什么,下面就把一些数据类型列出如下: ATOM 原子(原子表中的一个字符串的参考) BOOL 布尔变量 BOOLEAN 布尔变量 BY ...
- Access Violations 访问冲突(AVs)是Windows编程时发生的最麻烦的错误?
Access Violations<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...
随机推荐
- c++ - Create empty json array with jsoncpp - Stack Overflow
python中multiprocessing.pool函数介绍_正在拉磨_新浪博客 multiprocessing.pool c++ - Create empty json array wit ...
- JavaDoc的生成规则---ShinePans
使用方法: javadoc [options] [packagenames] [sourcefiles] [@files] -overview <file> 从 HTML ...
- LeetCodeOJ. String to Integer (atoi)
试题请參见: https://oj.leetcode.com/problems/string-to-integer-atoi/ 题目概述 Implement atoi to convert a str ...
- UNIX环境高级编程——TCP/IP网络编程
常用网络信息检索函数 gethostname() getppername() getsockname() gethostbyname() gethostbyaddr() getprotobyname( ...
- 嵌入式:使用dd命令制作烧写文件
1. 使用dd命令制作烧写文件 环境: bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtd ...
- Git 文件状态的转换
很好低使用git 文件的状态转换的了解是非常重要的. 文件转换状态其实可以分为四种: untracked:未跟踪,此文件在工作区中,但并没有加入git库,不参与版本控制. 通过”git add”,”g ...
- 小记:css特殊性
今天早上遇到了个小bug,刚好用从css权威指南学到的知识解决了 html结构 <ul class="portlet-nav"> <li><a id= ...
- ecosphere是什么意思_ecosphere的翻译_音标_读音_用法_例句 - 必应 Bing 词典
ecosphere是什么意思_ecosphere的翻译_音标_读音_用法_例句 - 必应 Bing 词典 ecosphere
- Google C++ style guide——命名约定
1.通过命名规则 函数命名.变量命名.文件命名应具有描写叙述性. 类型和变量应该是名词,函数名能够用"命令性"动词. 2.文件命名 文件名称所有小写,能够包括下划线(_)或者断线( ...
- Websense一面、二面及Offer
1. 写脚本打印当前目录(子目录)下文件内容中包含abc字符串文件 2. 用C写一个管道通信的程序:父进程向子进程写一个”hello word”字符串,子进程输出. 3. 解释I-node. 4 ...