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;

    }

  • 相关阅读:
    在Oracle中添加用户 赋权 修改暗码 解锁
    Ubuntu Linux 8.04 Vsftp 假造用户设置
    用一个实例讲解DB2数据库游标轮回的成果
    解说Oracle数据库自动增长列的完成过程
    MSN登录错误“80072efd”解决办法
    再学 GDI+[61]: 路径画刷(1) SetCenterColor、SetSurroundColors
    WinAPI: 测试 BitBlt
    两个 CopyRect
    再学 GDI+[58]: 路径 保存与读取路径数据
    再学 GDI+[62]: 路径画刷(2) SetCenterPoint、GetCenterPoint
  • 原文地址:https://www.cnblogs.com/yfyzy/p/3617360.html
Copyright © 2011-2022 走看看