zoukankan      html  css  js  c++  java
  • 简单的windows窗口创建实例

    #include<windows.h>

    #include<tchar.h>

    LRESULT CALLBACK WndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)        //消息处理函数

    {

     switch(umsg)  

    {  

    case WM_CLOSE:  

     {    ::DestroyWindow(hwnd);   }

      break;

     case WM_DESTROY:    

    {     :: PostQuitMessage(0);         }     

    return 0;

     }

     return DefWindowProc(hwnd,umsg,wParam,lParam); //返回默认的消息处理函数

    }

    int WINAPI _tWinMain(IN HINSTANCE hInstance ,IN HINSTANCE hPrevInstance ,IN LPTSTR szCmdLine ,IN int iCmdShow )

    {

     static TCHAR pszClassName[]=_T("IT Wnd");

     //创建窗口  WNDCLASS wxce;

     wxce.style = CS_HREDRAW | CS_VREDRAW ;  //窗口的风格  wxce.lpfnWndProc =WndProc;             //消息处理,需要消息处理函数WndProc的名字  wxce.cbClsExtra = 0 ;                   wxce.cbWndExtra = 0;  wxce.hInstance   = hInstance;           //窗口的实例句柄

     wxce.hIcon   = (HICON)::LoadIcon(NULL,IDI_APPLICATION);        //窗口的的光标

     //wxce.hIconSn= (HICON)::LoadIcon(NULL,IDI_APPLICATION);

     wxce.hCursor = (HCURSOR)::LoadCursor(NULL,IDC_ARROW);         //鼠标指针  wxce.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);    //背景颜色  wxce.lpszMenuName = NULL;                                     //菜单句柄,本例中没有用到菜单  wxce.lpszClassName = pszClassName;                             //窗口名称

     //注册窗口  if(!RegisterClass(&wxce))  {   ::MessageBox(NULL,_T("注册窗口失败"),pszClassName,0);   return FALSE;  }

     //创建窗口

     HWND hwnd = ::CreateWindow(pszClassName,                             //窗口类名         

                      _T("IT学吧"),                            //窗口标题         

      WS_VISIBLE|WS_OVERLAPPEDWINDOW,          //窗口风格,或称窗口格式       

      CW_USEDEFAULT,                           //初始x坐标,这里的初始坐标都设定为默认的  

           CW_USEDEFAULT,                          //初始Y坐标     

        CW_USEDEFAULT,                            //初始X方向尺寸,这里也设为默认的      

       CW_USEDEFAULT,                            //初始Y方向尺寸    

         NULL,                                     //父窗口句柄    

         NULL,                                     //窗口菜单句柄        

     hInstance,                                 //程序实例句柄         NULL   );                                 //创建参数

     if(NULL==hwnd)  

    {  

     ::MessageBox(NULL,_T("创建窗口失败"),pszClassName,0);   

    return FALSE;

     }

     ::ShowWindow(hwnd,iCmdShow);           //显示窗口  

    ::UpdateWindow(hwnd);                 //更新窗口

     MSG msg;  while (::GetMessage(&msg,NULL,NULL,NULL))  

    {   ::TranslateMessage(&msg);   

    ::DispatchMessage(&msg);

     }

     return true;

    }

  • 相关阅读:
    LeetCode偶尔一题 —— 617. 合并二叉树
    《剑指offer》 —— 链表中倒数第k个节点
    《剑指offer》 —— 青蛙跳台阶问题
    《剑指offer》—— 二维数组中的查找
    《剑指offer》—— 替换空格
    《剑指offer》—— 合并两个排序的链表
    《剑指offer》—— 礼物的最大价值
    生成Nuget 源代码包来重用你的Asp.net MVC代码
    Pro ASP.Net Core MVC 6th 第四章
    Pro ASP.NET Core MVC 6th 第三章
  • 原文地址:https://www.cnblogs.com/yfyzy/p/3617360.html
Copyright © 2011-2022 走看看