第1课用C语言函数编写对话框
(2012-01-12 20:14:23)
标签:
windows程序设计教育c语言对话框 |
分类: MFC程序设计 |
第1课 用C语言函数编写对话框
【孙鑫VC++第1课笔记】
特别提醒:前面自己要学习下面向对象的知识【类的知识】;
不过在第一课里面还没有用到类的知识,第二课才开始涉及到类的知识;
1、windows应用程序是如何运行的?
特点:windows程序设计是种事件驱动方式的程序设计,主要基于消息的。
运行步骤:
1) 、当用户需要完成某种功能时(比如敲击键盘),需要调用OS某种支持;
2) 、然后OS将用户的需要包装成消息,并投入到消息队列中;
3) 、最后应用程序从消息队列中取走消息并进行响应。
2、应用程序如何操纵OS?
应用程序à系统调用(调用函数)à通知操作系统做事
★
API就是这些操作系统函数的集合的简称,也叫做应用程序接口;
每个API函数都能让操作系统做一件事情;
★★ 操作系统如何通知应用程序做事?
发送消息到消息队列,应用程序按照消息去做事;
3、消息是什么?
消息是一个结构体;
typedef struct tagMSG {
} MSG, *PMSG;
★ typedef是什么?主要作用定义同义词;
Typedef
原词
上面就是:typedef struct tagMSG MSG;MSG是同义词
4、msdn
Msdn是什么?是vc6的帮助啊。
每年发布4次,每个季度发布一个新的版本;
Msdn2001年10月份发布的是支持VC6的最后一个版本;
5、新的数据类型
HWND是一个新的数据类型
★用类型的同义词来定义变量,可以得知变量的用途或者含义;
6、消息队列
消息队列就是数据结构里的队列,具有先进先出的特性;用数组实现;
7、WinMain函数
int WINAPI WinMain(
HINSTANCE hInstance,
);
★★ 这只是一个主函数的头部,不用自己记住,用的时候可以到msdn里面拷贝;
★LPSTR 其中LP表示一个长指针
8、HInstance实例句柄
运行一个窗口 就是一个实例 对于同一段代码 又运行了一个窗口 就是第2个实例
9、★★★★★创建一个完整的窗口需要经过下面四个操作步骤:
1)、设计一个窗口类(其实是一个结构体);如:WNDCLASS wndcls;
2)、注册窗口类; 如:RegisterClass(&wndcls);
3)、创建窗口; 如:CreateWindow(),CreateWindowEX();
4)、显示及更新窗口。如:ShowWindow(),UpdateWindow();
5)、消息循环GetMessage从消息队列中获得消息;
10、窗口的类型
二进制的一些宏 0x0001
特征相加 用按位与|,去掉特征 &~
11、回调函数
★由操作系统自动调用,但是如何处理要程序员写程序来处理;
函数名是函数代码的首地址,也是函数指针;
回调函数里面可以处理很多消息。
回调函数可以自己取名字,但是参数类型不能改,参数名字可以修改。
12、消息循环
13、CALLBACK是什么?
说明:两种函数调用约定(__stdcall 和 __cdecl):
#define CALLBACK __stdcall
//__stdcall 标准调用预定,是PASCAL 调用约定,象DELPHI使用的就是标准调用约定
#define WINAPIV __cdecl
// __cdecl 是C 语言形式的调用约定。
CALLBACK也可以在VC编译器里面可视化设置。
实践部分
1、建立win32 Application工程,建立一个空的工程;
2、建立*.cpp文件,就是C++Source文件,不是头文件;
3、加两个头文件windows.h, stdio.h;
4、拷贝WinMain函数的头部,开始按照建立窗口的五个步骤编写程序;