操作系统感知事件和传递事件是通过消息机制来实现的
typedef struct tagMSG{
    HWND hwnd;  //窗口的句柄
    UINT message;
    WPARAM wParam; //信息的附加参数
    LPARAM lParam;
    DWORD time; //消息传递的时间
    POINT pt;   //消息投递的时候,光标的位置
}

句柄,资源的标识。操作系统要操作和管理这些资源都是通过句柄来找到对应的资源。按资源的类型,又可以将句柄细分成图标句柄(HICON)光标句柄(HCURSOR)窗口句柄(HWND)程序实例句柄(HINSTANCE)

UINT,unsigned int
为什么要起这么多变量名(都是int型),为了区分变量的用途

WORD是十六位的整数DWORD是32位的整数

windows程序的入口函数
int WINAPI WinMain(
    HINSTANCE bInstance, //程序实例
    HINSTANCE bPrevInstance,//之前的程序实例,在win32下总是为空
    LPSTR lpCmdLine,//LP long point STR字符串,命令行参数
    int CmdShow        //程序显示状态
)

typedef struct _WNDCLASS{
    UINT         style;
    WNDPROC     lpfnWndProc;//窗口过程
    int         cbClsExtra;//类的额外数据
    int            cbWndExtra;//窗口的额外数据
    HINSTANCE    hInstance;
    HICON        hIcon;   //图标
    HCURSOR        hCursor;  //光标
    HBRUSH        hbrBackground;//画刷,背景
    LPCTSTR        lpszMenuName;// long point const string
    LPCTSTR        lpszClassName;
}WNDCLASS,*PWNDCLASS;

HWND CreatWindow(
    LPCTSTR lpClassName,//类的名字,要注册过的
    LPCTSTR lpWindowName,//窗口标题
    DWORD dwStyle,        //窗口的类型
    int x,                //窗口的水平坐标,horizontal
    int y,                //窗口的垂直坐标,vertical,左上角的坐标
    int nWidth,
    int nHeight,        //窗口的宽度和高度
    HWND hWndParent,    //父窗口的句柄
    HMENU hMenu,        //菜单句柄
    HINSTANCE hInstance,
    LPVOID lpParam        //单文档用不上
)

BOOL ShowWindow( 
    HWND hWnd,  //窗口的句柄
    int nCmdShow //显示的状态
)

UpdateWindow(hwnd);//更新窗口

//从消息队列中获得一个消息
BOOL GetMessage(
    LPMSG lpMsg,    //消息结构体的指针
    HWND hWnd,        //消息所在的窗口句柄,NULL时此线程的所有窗口
    UINT wMsgFilterMin,
    UINT wMsgFilterMax//消息范围,都为0的时候没有消息过滤
)

TranslateMessage(&msg);//将WM_KeyDown 和 WM_KeyUp转换成WM_Char消息
DispatchMessage(&msg);//将收到的消息传到窗口的回调函数中

1:24:13