文档介绍:第2章 Windows编程基础
简单的Windows应用程序
简单的Windows应用程序。
[例Ex_HelloMsg] 一个最简单的Windows应用程序
(1) 运行Microsoft Visual C++ ,选择“文件”“新建”菜 单命令,打开应用程序向导,显示出“新建”对话框。
简单的Windows应用程序
(2)在工程名称框中键入Win32应用程序项目名称elloMsg。
(3)单击[确定]按钮继续。
(4)再次选择“文件”“新建”菜单命令,显示出“新建”对话框。
“新建”对话框文件页面
简单的Windows应用程序
(6)在文档窗口中输入下面的代码:
#include <>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE
hPrevInstance ,LPSTR lpCmdLine, int nCmdShow)
{
MessageBox (NULL, "你好,我的Visual C++世界!", "问候", 0) ;
return 0 ;
}
简单的Windows应用程序
编译并运行程序从上面的程序可以看出:
WinMain函数的原型如下:
int WINAPI WinMain (
HINSTANCE hInstance, // 当前实例句柄
HINSTANCE hPrevInstance, // 以前的实例句柄
LPSTR lpCmdLine, // 指向命令行参数的指针
int nCmdS // 窗口的显示状态
,包含了一些Windows头文件。
程序中,MessageBox是一个Win32 PI(ApplicationProgramming Interface, 应用程序接口)函数,用来弹出一个对话框窗口,显示短信息。
简单的Windows应用程序
[例Ex_HelloWin] 一个较完成的Windows应用程序
(1) 按照Ex_HelloMsg示例方法,创建一个An empty project类型的Win32 Application(Win32 应用程序)项目Ex_HelloWin。
(2)选择“文件”“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C++ Source File项,在右边的“文件”,单击[确定]按钮。
(3)在文档窗口中输入代码:
Ex_HelloMsg示例相比,Ex_HelloWin要复杂的多,可以将其分是两个基本函数的程序结构。
函数WndProc用来接收和处理各种不同的消息,而WinMain函数通常要完成以下几步工作:
定义并调用API函数RegisterClass注册应用程序的窗口类。
简单的Windows应用程序
函数CreateWindow用来创建已注册窗口类的窗口。CreateWindow函数具有下列原型:
HWND CreateWindow(
LPCTSTR lpClassName, // 已注册的窗口类名
LPCTSTR lpWindowName, // 窗口标题
DWORD dwStyle, // 窗口风格
int x, // 窗口的水平位置
int y, // 窗口的垂直位置
int nWidth, // 窗口宽度
int nHeight, // 窗口高度
HWND hWndParent, // 父窗口句柄
HMENU hMenu, // 菜单句柄或控件标识
HINSTANCE hInstance, // 应用程序实例句柄
LPVOID lpParam // 其他窗口创建时的参数数据
简单的Windows应用程序
API函数GetMessage 和DispatchMessage就是起到这样的作用。
如果接收到WM_QUIT消息,则退出应用程序。
(4) 编译运行程序,窗口中单击鼠标左键,会弹出对话框。
简单的Windows应用程序
Windows应用程序的基本流程:
Windows编程特点
完整的Windows应用程序除了WinMain函数外,包含用于处理用户动作和窗口消息的窗口函数。
还会发现一个Windows应用程序还常常具有一些特性:
消息驱动机制
图形设备接口(GDI)
基于资源的程序设计
动态链接库
1. 消息驱动机制
Windows程序和控制台应用程序之间一个最根本区别,在于控制台应用程序是通过调用系统函数来获得用户输入,而Windo