您的位置:首页 - C++
Visual C++最简单的Windows应用程序
大多数的程序设计书籍的第一个程序实例都是以一个Hello World程序开始,介绍编程的基本知识。本节就以此为例,展示一个最简单的Hello World的Windows应用程序。

最简单的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;
}


这个程序非常简单,只有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行是一个MessageBox函数。它的作用是显示一个提示框。MessageBox的原型如下:

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


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

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

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程序的精髓。
本站导航
相关文章
柯乐义 Copyright© keleyi.com