天天看点

win32之Hello World

第一个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 ;
}
           
win32之Hello World

windows应用程序开发学习的第一个程序,经典的Hello World !

继续阅读