一个简单窗口(便于窗口消息的理解)

来源:互联网 发布:手机截取在线视频软件 编辑:程序博客网 时间:2024/05/18 07:44
#include <windows.h>    //包含windows.h头文件LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM); //声明窗口函数int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, LPSTR lpcmdLine, int nCmdShow)     //MFC下的程序入口函数WinMain(),传统的dos程序是以main()作为程序入口的,这一点不同{    WNDCLASS wndclass;    //定义窗口类结构体变量    HWND hwnd;  //定义窗口类句柄    MSG msg;        //定义消息结构体变量    wndclass.style = CS_HREDRAW || CS_VREDRAW; //改变窗口大小则重绘    wndclass.lpfnWndProc = WindowProc;  //窗口函数为WindowProc()    wndclass.cbClsExtra = 0; //窗口类无扩展    wndclass.cbWndExtra = 0;       //窗口实例无扩展    wndclass.hInstance = hinstance;     //注册窗口类实例句柄    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);          //使用光标箭头    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);      //指定鼠标箭头的样式    wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_PEN);               //窗口背景为黑色    wndclass.lpszMenuName = NULL;           //窗口默认无菜单    wndclass.lpszClassName = L"Windows窗口创建";         //窗口类名为"Windows窗口创建"    if (!RegisterClass(&wndclass))         //此为注册类的函数    {        return false;    //注册不成功,返回false    }    //创建窗口的函数    hwnd = CreateWindow(L"Windows窗口创建",     //窗口类名为"Windows窗口创建"        L"Windows窗口创建",   //窗口的名称为“Windows窗口创建”,即窗口标题栏显示的窗口名称        WS_OVERLAPPEDWINDOW, //重叠式窗口        CW_USEDEFAULT, CW_USEDEFAULT,    //窗口左上角在屏幕上的默认位置        CW_USEDEFAULT, CW_USEDEFAULT,    //窗口的宽度和高度        NULL,      //窗口无父类窗口        NULL,      //窗口无主菜单        hinstance,        //创建此窗口的实例句柄        NULL        //此窗口无创建参数        );    ShowWindow(hwnd, nCmdShow); //显示窗口    UpdateWindow(hwnd);          //不断的更新窗口的客户区    while (GetMessage(&msg, NULL, 0, 0))    //捕获消息    {        TranslateMessage(&msg);              //键盘消息转换        DispatchMessage(&msg);               //派送消息给窗口函数    }    return msg.wParam;       //返回退出值}LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)               //窗口函数{    wchar_t *textTmp = L"Windows!";    switch (message)    {    case WM_PAINT:             //重画窗口客户区消息处理        HDC hdc; //定义设备句柄        PAINTSTRUCT ps;            //定义绘图结构体变量        hdc = BeginPaint(hwnd, &ps);  //获取要重画的窗口的设备描述表句柄        TextOut(hdc, 15, 20, textTmp, wcslen(textTmp));                //输出到窗口的文本        EndPaint(hwnd, &ps);               //结束重画        return 0;    case WM_DESTROY:               //撤销窗口消息处理        PostQuitMessage(0);               //产生退出程序消息WM_QUIT        return 0;    }    return DefWindowProc(hwnd, message, wParam, lParam);}
0 0
原创粉丝点击