当前课程知识点:VC++面向对象与可视化程序设计(上):Windows编程基础 > 第1章 Windows应用程序基础 > 1-5 应用程序举例 > 1-5-3
返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频课程列表
返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频列表
好 下面 我们再讲一个应用程序
这个应用程序是什么
就是说我们生成的不是空项目
而是Win32项目
那么这个项目是什么
就是说你生成的时候实际上也是一个空壳的应用程序
但是刚才那个例子里面
所有的代码都是我们自己输入的
我们现在这个例子
代码不需要我们输
系统给我们生成的空壳是什么样的
好了 我们点“下一步”
我们创建的是Windows应用程序
这个是“空项目”
我们可以不点“空项目”
空项目 就是刚才那个就是空的
我们完成
大家可以看到系统给我们生成了很多应用程序
我们仍然给它收起来
看看都生成了什么东西
好 我一个个都给它收了
这个它 有这么一个宏定义
这个是定义了什么
title 标题栏
这里定义了标题栏
这个宏定义是100
实际上就是说标题栏的字节数
字符个数不要超过100
但是一般来说作为一个窗口
不会有人在窗口上写上100个字节这么长的一个标识
所以我们刚才自己写代码的时候
就没有去做这一个控制
还有窗口类的名字 也是限定到100
实际上窗口类的名字一般来说我们就几个字符
能够有效地识别就可以了
也没有人会起到超过100
所以我们就没有去做这个控制
那么在这里面窗口类的注册
当前实例的初始化以及窗口原型函数
实际上就是说我们还是那句话
被调函数在主调函数后面出现的时候
前面要有前向的声明
它这里声明在这里面了
那么我们刚才看到的前面例子的声明 只看到了这个声明
为什么
因为这两个内容都在应用程序里直接写进去了 不需要声明
所以只是写的方法不一样而已
那么我们看一下它的窗口类的注册
那这个大家看到了 这里是WNDCLASSEX
我们这里前面一个例子写的是WNDCLASS
现在这个写什么名字只是一个变量的名字
无所谓
我们起的什么名字不一定和它一样
大家学过C语言都会识别这些东西
一样这里也是title、WndProc
实际上这些参数的话 内容是一样的
箭头也是IDC_ARROW
那么这个东西 虽然有一些这个参数不大一样
这个只是说在建应用程序初始的时候
它选的内容和我们选的内容不完全一致
但是套路是一样的
都是对这个结构的成员进行赋初值
然后注册窗口类
然后在这里面InitInstance
实际上初始化
初始化过程中创建了window
我们刚才应用程序里面创建window
是直接在应用程序WinMain里面创建的
所以没有把它单独提出来
它这里面把它单独提出来作为一个应用程序
那么在这里面这个是WndProc函数里面
它这个是注释
注释的话 我们就不用太细地去看它了
那么它的WndProc跟我们的一样 也是四个参数
跟我们的参数是一样的
因为这是构架嘛 一样的
它这里面
我们只处理了退出
退出它用的是DESTROY退出
跟我们的退出 PostQuitMessage退出效果是一样的
但是它这里多做了一个ABOUT
多做了一个ABOUT它多了什么地方
我们编译运行一下
就是看一下它多做了什么地方
实际上它这里多了两个菜单
ABOUT是这个东西
但我们刚才的应用程序里面
是没有这两个菜单
是说实际上是更原始的
就是说是完全空壳的一个东西
所以我们刚才建的程序
它这里面 还不能(算)真正意义上的空壳
因为它这里退出可以从这里退出
我们刚才退出直接从这里退出
没有安排这两个东西
也就是说比这个它系统生成的空壳文件更简化 更基础
因为它刚才有ABOUT
所以它这里多了ABOUT消息
系统自动给你生成的东西还牵扯到了PAINT
PAINT消息我们后面才讲到
所以它这里面的空壳内容比我们的空壳还多一点
这个大家应该熟悉了
这个就是我们退出时用的DESTROY和DefWindowProc
实际上我们只做了这两个
空壳的应用程序它生成应用程序的时候
由于多做了一些菜单
所以它就
你既然多做了菜单 就得对菜单进行响应
这几个case它怎么来的
实际上我们作为第一节课
还没有讲到其他对象的ID是如何创建
所以在这里面它多创建了一些东西
对于初学者来说可能这个地方看起来是有困难的
那么大家对比一下 带着问题去学习
也知道后面的话我们会对很多的对象进行响应
实际上这里面每一个case都是对一个对象进行消息响应
因为它多了一个ABOUT
它就要对ABOUT进行响应
那么对ABOUT响应里面这里内容也就比较多了
大家可以先看一下 自己先领会一下
最主要的还是先掌握我们刚才作为例题给大家介绍的
那个最空壳的最基础的一个应用程序
它这个自动生成
实际上生成了很多附加的东西
还算不上最最基础最最简单的一个
没有任何一个别的功能的空壳程序
所以这个大家也不妨自己也在我们刚才第一个例题的基础上
做一个体会
那么这里相信对初学者来说
这个系统生成的很多代码
大家可能一下子不会很快地能够领会
因为它这里的内容跨越了我们后续的很多内容
所以这个例子只是给大家拿出来让大家体会一下
并不要求大家现在就能够很好地全面地掌握
我们从循序渐进的学习角度来说
要求大家刚才第一个例题要很好地掌握
第二个例题作为参考
然后带着问题学习后面的专题
那好 我们第一讲的内容就到这儿
-讨论实录
--0-0
-1-1 Windows应用程序的特点
--1-1
-1-2 可视化编程
--1-2
-1-3 关于API
--1-3-1
--1-3-2
-1-4 Windows应用程序组成及编程步骤
--1-4-1
--1-4-2
-1-5 应用程序举例
--1-5-1
--1-5-2
--1-5-3
-02-1 Windows图形设备接口
-02-2 绘图工具与颜色
-02-3 常用绘图函数
-02-4 例题和作业
-第2章源代码
--外部链接
--外部链接
-3-1 设置文本的设备环境
-3-2 文本的输出过程
-3-3 例题和作业
-第3章源代码
--外部链接
-4-1 Windows 应用程序中的键盘与鼠标
--4-1
-4-2 键盘的操作应用举例
--4-2
-4-3 例题
--4-3
-4-3 鼠标在应用程序中的应用
--4-3
-4-4 例题4-4
--4-4
-第4章源代码
--外部链接
-5-1 菜单和加速键资源及其应用
--5-1
-5-1(例1)
--5-1(例1)
-5-2 位图资源及其应用
--5-2
-5-3 对话框资源及其应用
--5-3-1
--5-3-2
-5-4 图标资源的应用
--5-4
-第5章源代码
--外部链接
-第一次作业
--第一次作业--作业
-第二次作业
--第二次作业--作业
-第三次作业
--第三次作业--作业