一、 Windows程序运行原理及程序编写流程
第一课主要内容:窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项。
1. Windows API与Win32 SDK(API为SDK子集。)
1、API:操作系统提供了各种方便开发Windows应用程序的编程接口,。
Win32 SDK(Software Development Kit): 即Windows 32位平台下的软件开发包,包括API函数,帮助文档,微软提供的一些辅助开发工具。
2. 窗口与句柄
1、窗口是是屏幕上一块矩形区域,是Windows应用程序与用户进行交互的接口。窗口分为客户区和非客户区。
2、在Windows应用程序中,窗口(资源)是通过窗口句柄(HWND)来标识的,要对某个窗口进行操作,首先就要得到这个窗口的句柄。其它各种资源(窗口,图标,光标等),系统在创建这些资源时会为它们分配内在,并返回标识这些资源的标识号,即句柄。-->光标句柄(HCURSOR),图标句柄(HICON),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)。
3、句柄(HANDLE),资源的标识。
3. 消息与消息队列
1、Windows程序设计是一种基于消息的事件驱动方式的程序设计模式。
消息:在Windows中由结构体MSG来表示,
typedef struct tagMSG{
HWND hwnd;//消息所属的窗口句柄
UINT message;//消息本身标识符,由一数值表示;一般定义为int,系统对消息定义为WM_XXX宏(WM为Windows Message缩写)
WPARAM wParam; //随消息的不同附加信息也不同;例WM_char
LPARAM lParam; //消息的附加参数
DWORD time; //消息投递的时间(int)
POINT pt; //鼠标当前位置
}
消息队列(代表含义):每当一个Windows应用程序创建后,系统都会为该程序创建一个消息队列,这个消息队列用来存放该程序一的窗口的消息,消息产生后被投递到消息队列中,应用程序通过一个消息循环不断的消息队列中取出消息进行响应。响应过程由系统向应用程序发送消息,实际就是调用应用程序的消息处理函数。
4. 创建一个完整的Win32程序,该程序实现创建一个窗口,其中主要步骤为
A. WinMain函数的定义
函数原型:
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance(实例如一个程序窗口)
HINSTANCE hPrevInstance, // handle to previous instance(前一
学习笔记VC 孙鑫(一) 来自淘豆网m.daumloan.com转载请标明出处.