您的位置:首页 > 其它

Windows程序设计:编写第一个Windows程序Helllo World!

2009-10-22 02:20 459 查看
.dml {border:2px solid green;width:200px;background-color:#eeeeee;margin:0 0 0 0}
.ddm {background-color:#cccccc;margin-left:0mm} 目录:
1.Hello World!例子
2.分析Hello World! 
          头文件
          程序进入点
          MessageBox函数
1.Hello World!例子
#include <windows.h>




int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,


PSTR szCmdLine, int iCmdShow)


{


MessageBox (NULL, TEXT ("Hello world!"), TEXT ("HelloMsg"), 0|1);


return 0 ;


}


运行该出现,将会出现一个写着Hello World!的标题为HelloMsg的消息框,有两个按钮:确定和取消。

 



2.分析

头文件:

#include <windows.h>

windows.h是主要的含入文件,它包含了其它Windows表头文件,这些表头文件的某些也包含了其它表头文件。这些表头文件中最重要的和最基本的是

1.WINDEF.H 基本型态定义;

2.WINNT.H 支持Unicode的型态定义;

3.WINBASE.H Kernel函数;

4.WINUSER.H 使用者接口函数;

5.WINGDI.H 图形设备接口函数.

这些表头文件定义了Windows的所有数据型态、函数呼叫、数据结构和常数标识符,它们是Windows文件中的一个重要部分。使用Visual C++ Developer Studio的Edit菜单中的Find in Files搜索这些表头文件非常方便。您还可以在Developer Studio中打开这些表头文件并直接阅读它们。

程序进入点:

正如在C程序中的进入点是函数main一样,Windows程序的进入点是WinMain:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

许多Windows程序中的变量名使用一种称作「匈牙利表示法」的命名系统,该系统在变量名称前面增加了表示变量数据型态的短前缀,前缀i表示int、sz表示「以零结束的字符串」。

WinMain函数声明为返回一个int值。WINAPI标识符在WINDEF.H定义,语句如下:

#define WINAPI __stdcall

该语句指定了一个呼叫约定,包括如何生产机械码以在堆栈中放置函数呼叫的参数。许多Windows函数呼叫声明为WINAPI。

WinMain参数介绍:

1.WinMain的第一个参数被称作「执行实体句柄」。在Windows程序设计中,句柄仅是一个应用程序用来识别某些东西的数字。在这种情况下,该句柄唯一地标识该程序,还需要它在其它Windows函数呼叫中作为参数。

2.传给WinMain的第二个参数总是NULL。

3.WinMain的第三个参数是用于执行程序的命令列。某些Windows应用程序利用它在程序启动时将文件加载内存。

4.WinMain的第四个参数指出程序最初显示的方式,可以是正常的或者是最大化地充满整个画面,或者是最小化显示在工作列中。

MessageBox函数:

MessageBox函数用于显示短信息。虽然,MessageBox显示的小窗口不具有什么功能,实际上它被认为是一个对话框。

MessageBox参数介绍:

1.MessageBox的第一个参数通常是窗口句柄;

2.第二个参数是在消息框主体中显示的字符串;

3.第三个参数是出现在消息框标题列上的字符串;

在HELLMSG.C中,这些文字字符串的每一个都被封装在一个TEXT宏中。通常您不必将所有字符串都封装在TEXT宏中,但如果想将您的程序转换为Unicode字符集,这确是一个好主意。

4.MessageBox的第四个参数可以是在WINUSER.H中定义的一组以前缀MB_开始的常数的组合。您可从第一组中选择一个常数指出希望在对话框中显示的按钮:

#define MB_OK                              0x00000000L

#define MB_OKCANCEL                 0x00000001L

#define MB_ABORTRETRYIGNORE  0x00000002L

#define MB_YESNOCANCEL           0x00000003L

#define MB_YESNO                       0x00000004L

#define MB_RETRYCANCEL            0x00000005L

如果在HELLOMSG中将第四个参数设置为0,则仅显示「OK」按钮。可以使用C语言的OR(|)操作符号将上面显示的一个常数与代表内定按钮的常数组合。

还可以使用一个常数指出消息框中图示的外观:

#define MB_ICONHAND                    0x00000010L

#define MB_ICONQUESTION            0x00000020L

#define MB_ICONEXCLAMATION       0x00000030L

#define MB_ICONASTERISK              0x00000040L

这些图示中的某些有替代名称:

#define MB_ICONWARNING             MB_ICONEXCLAMATION

#define MB_ICONERROR                  MB_ICONHAND

#define MB_ICONINFORMATION      MB_ICONASTERISK

#define MB_ICONSTOP                    MB_ICONHAND

在本程序中,MessageBox返回数值1,但更严格地说它返回IDOK,IDOK在WINUSER.H中定义,等于1。根据在消息框中显示的其它按钮,MessageBox函数还可返回IDYES、IDNO、IDCANCEL、IDABORT、 IDRETRY或IDIGNORE。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: