day70-----win32-windows的窗口程序框架

window窗口编程,类似于linux下的socket编程,有一个固定的框架。
这个框架决定了窗口的属性,也提供了完整的消息机制。如下:
//头文件,这个头文件中包含了所有的头文件
#include 
//Win32的入口函数,类似于标准c语言中的main函数,这是一个回调函数,由系统执行回调动作
//参数:
//hInstance:当前Win32进程的句柄
//hPreIns:上一个进程的句柄,参数已经废弃
//lpCmdLine:命令行参数
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPreIns,LPSTR lpCmdLine,int nShowCmd){
    //窗口类,这是一个结构体,定义即将创建的窗口的属性,一共10个成员变量。
    WNDCLASS wc = {0};
    //窗口类附加数据缓存区
    wc.cbClsExtra = 0;
    //窗口附加数据缓存区
    wc.cbWndExtra = 0;
    //窗口背景颜色
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    //光标类型,NULL表示默认
    wc.hCursor = NULL;
    //图标类型,NULL表示默认
    wc.hIcon = NULL;
    //当前winMain函数的句柄
    wc.hInstance = hInstance;
    //消息处理函数
    wc.lpfnWndProc = WndProc;
    //窗口类名
    wc.lpszClassName = "Main";
    //菜单选项,NULL表示没有菜单
    wc.lpszMenuName = NULL;
    //窗口类风格
    wc.style = CS_HREDRAW|CS_VREDRAW;
    //向操作系统注册这个窗口类
    RegisterClass(&wc);
    //创建窗口
    HWND hWnd = CreateWindow(wc.lpszClassName,//窗口类名
                            "Window",//窗口名
                            WS_OVERLAPPEDWINDOW,//一般窗口风格
                            100,//窗口左上角横坐标
                            100,//窗口左上角纵坐标
                            700,//窗口宽度
                            500,//窗口高度
                            NULL,
                            NULL,
                            hInstance,//WinMain函数的句柄
                            0
                            );
    //显示这个窗口
    ShowWnd(hWnd,SW_SHOW);
    //消息结构体,用于存放系统传递过来的消息
    MSG nMsg = {0};
    //消息循环
    while(GetMessage(&nMsg,NULL,0,0)){
        //翻译消息
        TranslateMessage(&nMsg);
        //派发消息
        DispatchMessage(&nMsg);
    }
    return 0;
}
//消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT msgId,WPARAM wParam,LPARAM lParam){ 
    return DefWindowProc(hwnd,msgId,wParam,lParam);//系统默认的消息处理函数
}

你可能感兴趣的:(c++)