zoukankan      html  css  js  c++  java
  • 窗体信息处理函数讲解

    #include <windows.h>
    HINSTANCE hInst;
    HWND wndHandle;
    bool initWindow(HINSTANCE hInstance);
    LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);




    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
    {
            //初始化窗口
            if (!initWindow(hInstance))
               return false;
            //主消息循环
            MSG msg;
            ZeroMemory(&msg,sizeof(msg));
            while(msg.message!=WM_QUIT)
            {
                 while(GetMessage(&msg,wndHandle,0,0))
                 {
                      TranslateMessage(&msg);//转换消息
                      DispatchMessage(&msg);//投递消息
                 }
            }
            return (int)msg.wParam;
    }



    bool initWindow(HINSTANCE hInstance)
    {
           WNDCLASSEX wcex;
           //此部分可查看MSDN
           wcex.cbSize              =sizeof(WNDCLASSEX);        //这个structure的大小
           wcex.style               =CS_HREDRAW | CS_VREDRAW;//类型
           wcex.lpfnWndProc         =(WNDPROC)WndProc;          //处理程序消息的函数     (重点)
           wcex.cbClsExtra          =0;
           wcex.cbWndExtra          =0;
           wcex.hInstance           =hInstance;                 //这个程序的句柄
           wcex.hIcon               =0;                         //程序的ICON
           wcex.hCursor             =LoadCursor(NULL,IDC_ARROW);//鼠标指针
           wcex.hbrBackground       =(HBRUSH)(COLOR_WINDOW+1);//程序背景色,(这里有个强制类型转换,不明白可以看孙鑫老师的程序)
           wcex.lpszMenuName        =NULL;                       //没有菜单
           wcex.lpszClassName       ="Direct Example";           //程序注册名称(这里一定和下面的名称一至)
           wcex.hIconSm             =0;                          //
           RegisterClassEx(&wcex);            //注册
           
    //创建窗口
           wndHandle=CreateWindow(
                              "Direct Example",          //这里一定和上面注册名称一样
                              "我的D3D程序",             //标题名称
                              WS_OVERLAPPEDWINDOW,       //窗口类型
                              CW_USEDEFAULT,             //X坐标
                              CW_USEDEFAULT,             //Y坐标
                              640,                       //窗口宽度
                              480,                       //窗口高度
                              NULL,                      //没有父窗口
                              NULL,                      //没有菜单
                              hInstance,                 //程序的句柄
                              NULL);
             //对窗口是否已经创建成功进行确认
             if (!wndHandle)
                return false;
            //在屏幕上显示这个窗口
            ShowWindow(wndHandle,SW_SHOW);
            UpdateWindow(wndHandle);
            return true;
    }



    LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
           //检查消息队列中所有可用消息
           switch(message)
           {
               case WM_DESTROY:
               PostQuitMessage(0);
               break;
           }
           return DefWindowProc(hWnd,message,wParam,lParam);
    }
  • 相关阅读:
    【转】深入理解JavaScript闭包(closure)
    【转】js之匿名函数
    【转】jQuery选择器大全
    模拟切水果的游戏以达到对JavaScript的一些基本语法操作的练习
    JavaScript增加一个随机颜色的div,并在一定时间后div自动消失
    程序猿,千万别说你不了解Docker!
    了解ASCII、gb系列、Unicode、UTF-8的区别
    ASCII、Unicode、GBK和UTF-8字符编码的区别联系
    X86服务器、小型机、大型机、塔式、机架式、刀片式服务器、工作站
    云、Iaas、Paas、Saas
  • 原文地址:https://www.cnblogs.com/itelite/p/2238865.html
Copyright © 2011-2022 走看看