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);
    }
  • 相关阅读:
    陈天桥:重点布局影音文娱业务及海内市场
    瑞信维持新浪跑赢大盘评级
    快讯:空中网第四季度净利501万美元同比涨148%
    传高盛与德劭前合伙人组5亿美元私募基金
    CodeFirst 关系创建——Fluent API配置多重关系,关闭级联删除的方法
    笔记:IE下 jquery的fadeIn与fadeOut方法失效的BUG
    Codefirst Fluent API创建关系
    javascript拖动效果的一个注意事项:拖动图片时,mousemove事件会被中断
    通过下拉菜单筛选GridPanel的数据【转】
    as3.0学习笔记——坐标轴、并记录画图所犯的两个低级错误
  • 原文地址:https://www.cnblogs.com/itelite/p/2238865.html
Copyright © 2011-2022 走看看