设为首页 加入收藏

TOP

3.2.1 最简单的Windows应用程序
2013-10-07 00:05:30 来源: 作者: 【 】 浏览:58
Tags:3.2.1 简单 Windows 应用程序

3.2.1  最简单的Windows应用程序

大多数的程序设计书籍的第一个程序实例都是以一个Hello World程序开始,介绍编程(www.cppentry.com)的基本知识。本节就以此为例,展示一个最简单的Hello World的Windows应用程序。

实例3-1:最简单的Hello World 程序。

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR     lpCmdLine,
int       nCmdShow)
{
MessageBox( NULL , "Hello World" , "First Application" , NULL);
return 0;
}

编译运行该程序的结果如图3-2所示。

表3-1  匈牙利命名法使用的前缀符号

图3-2  运行结果

这个程序非常简单,只有10行。第1行包含了头文件windows.h。windows.h是Windows程序设计必须包含的一个头文件,实际上它又包含了大量的其他头文件,几乎所有的Windows API函数的定义都在其中。第2行是应用程序的入口,就像TC下的main函数一样,应用程序从WinMain开始,WinMain函数的定义如下:

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR     lpCmdLine,
int       nCmdShow)


它的返回值类型是整型,修饰符APIENTRY表明它是API入口函数,实际上它规定了函数的参数传递方式是从右向左传递的。

它包含四个参数,分别是:

(1)hInstance:它是Windows为该应用程序实例生成的一个句柄。所谓句柄是一个(通常为32位的)整数,它代表一个对象。如同使用指针一样,Windows会自动地把一个句柄与一个对象关联起来。许多 API 函数可返回句柄或者接受句柄作为参数。这里的hInstance就是一个与应用程序对象相关联的句柄,通过它可以访问与应用程序相关的资源信息等。
(2)hPrevInstance:该参数已经不再使用,只是微软为了保持兼容性而仍保留。
(3)lpCmdLine:如果应用程序以命令行的形式被启动,那么这个这个参数存放的是系统传进来的命令行的参数。
(4)nCmdShow:系统传入的带有如何打开主应用程序窗口的信息。如果要使用系统传入的窗口显示方式,那么就应该把这个参数传递给ShowWindow函数(关于ShowWindow,将在后面介绍)。

实例3-1的第3行是一个MessageBox函数。它的作用是显示一个提示框。MessageBox的原型如下:

int MessageBox(
HWND hWnd,   //父窗口句柄
LPCTSTR lpText,//提示信息
LPCTSTR lpCaption, //标题栏
UINT uType //提示框风格
);

它用四个参数就确定了提示框的特征,它们是:

1)hWnd:提示框的父窗口的句柄,本程序中该参数为NULL,表示提示框以桌面作为它的父窗口。
2)lpText:一个以空字符结尾的字符串指针。这个字符串就是提示框显示的提示信息。
3)lpCaption:一个以空字符结尾的字符串指针。这个字符串就是提示框的标题栏信息。
4)uType:该参数决定了提示框的风格类型。常用的提示框类型如表3-2所示:

表3-2  常用提示框的风格类型

标志                                                                          描述
MB_ABORTRETRYIGNORE           提示框有三个按钮:Abort,Retry和Ignore
MB_OK                                            提示框有一个按钮:OK
MB_OKCANCEL                            提示框有两个按钮:OK和Cancel
MB_RETRYCANCEL                     提示框有两个按钮:Retry和Cancel
MB_YESNO                                    提示框有两个按钮:Yes,No
MB_YESNOCANCEL                   提示框有三个按钮:Yes,No和Cancel

如果该参数传递的是NULL的话,表明使用默认的参数MB_OK,即只有OK按钮。
该实例程序以return 0;返回。这样,一个最简单的Windows应用程序就结束了。然而这个程序没有真正的窗口,没有消息循环,没有窗口消息的处理过程,没有菜单……似乎没有体会到一个真正的Windows程序的精髓。3.2.2节将创建一个更全面的Hello World应用程序。展示一个真正的有着复杂的消息处理机制的Windows应用程序。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.2.2 真正的Windows应用程序——.. 下一篇3.1 匈牙利编程命名规则

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: