Win32 版的 hello world 程序也包括include声明、一个程序进入点、一个return语句等组成,如:
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nShowCmd ) { MessageBox(NULL,TEXT("hello,world"),TEXT("title"),0); return 0; }
程序解析
#include <windows.h>
windows.h是主要的包含文件,此文件也包含了其他一些文件,比如:
windef.h :用于基本形态定义
winnt.h :支持unicode形态定义
winbase.h :kernel函数
winuser.h :使用者接口函数
wingdi.h :图形设备接口函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nShowCmd )
程序进入点,其中:
#define WINAPI __stdcall
第一个参数:执行实体句柄,用于标识此程序
第二个参数:已弃用
第三个参数:启动程序的命令列
第四个参数:程序最初显示方式,如最大化、最小化等
MessageBox(NULL,TEXT("hello,world"),TEXT("title"),0);
用于显示信息
第一个参数:窗口句柄,后续介绍
第二个参数:要显示的内容
第三个参数:窗口标题
第四个参数:要显示的按钮、图标等组件
MessageBox中常用的组件有以下几类,这几类组件可混合使用,使用中用”|“符号连接,如:MB_OK | MB_ICONERROR。
按钮类:
#define MB_OK 0x00000000L #define MB_OKCANCEL 0x00000001L #define MB_ABORTRETRYIGNORE 0x00000002L #define MB_YESNOCANCEL 0x00000003L #define MB_YESNO 0x00000004L #define MB_RETRYCANCEL 0x00000005L自定义按钮类:
#define MB_DEFBUTTON1 0x00000000L #define MB_DEFBUTTON2 0x00000100L #define MB_DEFBUTTON3 0x00000200L #define MB_DEFBUTTON4 0x00000300L图标类:
#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