对话框的来龙去脉

 

1. Windows GUI程序的基础
最基础最精干的Windows GUI程序包括以下几个部分:
  1) 调用RegisterClass注册窗口类。
  2) 调用CreateWindow创建窗口。
  3) 调用ShowWindow和UpdateWindow显示窗口。
  4) 一个消息循环。
  5) 一个窗口函数,或者叫窗口消息处理函数。
具体的例子代码参见《Windows 程序设计》第3章。顺便提一下,要学习Windows GUI程序设计,这本书推荐看一下,一本好书的作用无论怎么强调都不为过。

 

2.基于对话框的Windows GUI程序

 

3.代码的背后

  与1的窗体相比,2有自己的特点,比如程序的界面来自于资源管理器的定义,能响应Tab键切换焦点等等。但是对话框也是Windows窗体的一种,它的实现还是基于1的代码。我们进入2的代码的函数内部,就可以看到这一点。
  1)CreateDialog是一个宏,封装了函数CreateDialogParam。CreateDialogParam首先LoadResource,然后调用CreateDialogIndirectParam。资源管理器里面定义的模板,也由CreateDialogParam加载,再传递给CreateDialogIndirectParam。
 2)CreateDialogIndirectParam做了很多事情:
    A)建立对话框的框架,包括分析资源文件里面定义的对话框风格,加载菜单,加载字体等。
    B)创建控件。这些控件都是在资源文件里面定义的。
    C)调用CreateWindowEx,这个说明对话框本质上也是窗体。这个函数需要提供一个窗体类,这个传给它的窗体类就是微软提供的默认的对话框窗体类,类名是#32770,这个窗体类的窗体过程是DefDlgProc。
    D)需要注意的是,在CreateDialog也有一个过程,这个过程我们称为对话框过程。有消息过来,DefDlgProc会调用这个对话框过程,对话框过程响应消息。如果返回true,意味着告诉DefDlgProc,我已经处理消息了。如果返回false,意味着告诉DefDlgProc,这个消息还需要你处理一下。
  3)对话框的消息循环与1相比,多了一个IsDialogMessage。界面上控件的焦点切换正是在这个函数里面实现的。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server是一种关系型数据库管理系统,由Microsoft公司开发。它使用SQL语言进行数据管理和查询。以下是SQL Server的来龙去脉系列: 1. SQL Server的历史:SQL Server最初是由Sybase公司开发的,后来由Microsoft公司收购并继续开发。自1993年以来,Microsoft一直在开发和发布新版本的SQL Server。 2. SQL Server的版本:SQL Server有多个版本,包括Express、Standard、Enterprise和Developer等版本。每个版本都有不同的功能和限制。 3. SQL Server的体系结构:SQL Server的体系结构包括数据库引擎、分析服务、集成服务和报告服务等组件。数据库引擎是SQL Server的核心组件,用于存储和管理数据。 4. SQL Server的安全性:SQL Server提供了多种安全功能,包括身份验证、授权和加密等。它还支持Windows身份验证和SQL Server身份验证。 5. SQL Server的高可用性:SQL Server提供了多种高可用性功能,包括复制、日志传送、数据库镜像和AlwaysOn可用性组等。 6. SQL Server的性能优化:SQL Server提供了多种性能优化功能,包括索引、分区、查询优化器和内存优化等。 7. SQL Server的监视和管理:SQL Server提供了多种监视和管理工具,包括SQL Server Management Studio、SQL Server Profiler和Dynamic Management Views等。 8. SQL Server的开发:SQL Server支持多种编程语言和开发工具,包括.NET Framework、Visual Studio和PowerShell等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值