基本定义

API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程],而又无需访问原码,或理解内部工作机制的细节。

SDK:软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

窗口和句柄

窗口是 Windows 应用程序中一个非常重要的元素,一个 Windows 应用程序至少要有一个窗口,称为主窗口。

窗口是屏幕上的一块矩形区域,是 Windows 应用程序与用户进行交互的接口。利用窗口可以接收用户的输入、以及显示输出。

句柄( HANDLE) 是 Windows 程序中一个重要的概念, 使用也非常频繁。 在 Windows 程序中, 有各种各样的资源( 窗口、 图标、光标,画刷等), 系统在创建这些资源时会为它们分配内存, 并返回标识这些资源的标识号, 即句柄。

消息与消息队列

Windows 程序设计是一种完全不同于传统的 DOS 方式的程序设计方法。它是一种事件驱动方式的程序设计模式,主要是基于消息的。

 

每一个 Windows 应用程序开始执行后, 系统都会为该程序创建一个消息队列, 这个消息队列用来存放该程序创建的窗口的消息。

 

例如,当用户在窗口中画图的时候,按下鼠标左键,此时,操作系统会感知到这一事件,于是将这个事件包装成一个消息,投递到应用程序的消息队列中,等待应用程序的处理。

 

然后应用程序通过一个消息循环不断地从消息队列中取出消息,并进行响应。

 

在这个处理过程中,操作系统也会给应用程序“ 发送消息”。所谓“ 发送消息”,实际上是操作系统调用程序中一个专门负责处理消息的函数,这个函数称为窗口过程。

Windows常见的数据类型

UINT 无符号32位整形

DWORD 32位整形

PDWORD 32位整数类型指针

BOOL 布尔类型

SHORT 带符号16位整数

LRRSULT 32位函数返回值

WPARAM 32位的消息参数

LPARAM 32位的消息参数

句柄

HANDLE通用句柄

HWND窗口句柄

HINSTANCE实例句柄

windows程序的入口函数

int WINAPI WinMain(

HINSTANCE hInstance,//当前程序的实例句柄

HINSTANCE hPreInstance,//上一个程序的实例句柄,已经被移出

LPSTR lpCmdLine,//命令行参数

int nCmdShow//

)

Windows编程模型

程序的实现步骤为:

1) WinMain函数的定义

2) 创建一个窗口

创建一个完整的窗口,需要经过下面几个步骤:

a. 设计一个窗口类

b. 注册窗口类

c. 创建窗口

d. 显示及更新窗口

3) 进行消息循环

4) 编写窗口过程函数