第一个win32程序
WinMain函数
对于一个win32程序来说,WinMain函数是整个程序的入口函数,该函数的基本形式如下:
int CALLBACK WinMain(
_In_ HINSTANCE hInstance,
_In_ HINSTANCE hPrevInstance,
_In_ LPSTR lpCmdLine,
_In_ int nCmdShow
);
参数解析:
1.CALLBACK
在VS中可以在CALLBACK上点击右键转到定义,可以发现它的真面目其实是酱紫的,那么__stdcall又有什么含义呢?它其实是一个函数调用约定,确定一个程序如何实现一个函数调用及参数如何传递。有兴趣的小伙伴可以自行百度了解。
#define CALLBACK __stdcall
#define WINAPI __stdcall
2.hInstance [in]
类型:HINSTANCE
应用程序当前实例句柄。
3.hPrevInstance [in]
类型:HINSTANCE
应用程序上一个实例句柄,这个参数总是为NULL。
4.lpCmdLine [in]
类型:LPSTR
应用程序命令行参数。
5.mCmdShow [in]
类型:int
控制窗口的显示类型,具体取值可查看MSDN。
MessageBox函数
此函数创建,显示和操作消息对话框。 消息对话框包含应用程序定义的消息和标题,以及预定义图标和按钮的任意组合。函数基本形式如下:
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
参数解析:
1.hWnd [in]
类型:HWND
消息对话框所属窗口句柄,传入NULL,表示消息框是独立的。
2.lpText [in]
类型:LPCTSTR
消息对话框显示的内容。
3.lpCaption [in]
类型:LPCTSTR
消息对话框的title,如果传入NULL,则显示default title(Error)
4.uType [in]
类型:UINT
指定一组标志位,用于确定对话框的内容和行为。常用的有
MB_OK 对话框包含一个OK button
MB_OKCANCEL 对话框包含一个OK和一个CANCEL button
MB_YESNO 对话框包含一个YES和一个NO button
MB_YESNOCANCEL 对话框包含YES NO CANCEL三个buttons
该参数还有很多取值,具体可查看MSDN。
返回值:
int
返回按下按钮的ID。
Hello World !
#include <windows.h>//win32程序必备头文件
#include <tchar.h>//_T(x)所在头文件
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
int n = MessageBox(NULL, _T("Hello world!"), _T("first"), MB_OKCANCEL);//_T(x)的作用是编码自适应。详解将在下文UNICODE编码中分析。
return 0;
}
windows应用程序开发学习的第一个程序,经典的Hello World !