码迷,mamicode.com
首页 > Windows程序 > 详细

Win32API全局窗口类的注册与创建

时间:2017-05-15 13:02:07      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:大小   width   api   round   hicon   附加数据   order   uname   进程创建   

 
Win32API全局窗口类的注册
  • 应用程序全局窗口类的注册
    • typedef struct tagWNDCLASSEX {
      • UINT      cbSize; //结构体的大小,用sizeof得出
      • UINT      style; //窗口类的风格,默认设置左右画出
      • WNDPROC   lpfnWndProc; //回调函数,窗口处理函数,干活的人
      • int       cbClsExtra; //窗口类的附加数据Buff的大小
      • int       cbWndExtra; //窗口的附加数据Buff的大小
      • HINSTANCE hInstance; //当前模块的实例句柄
      • HICON     hIcon; //窗口图标句柄
      • HCURSOR   hCursor; //鼠标的句柄
      • HBRUSH    hbrBackground; //绘制窗口背景的画刷句柄
      • LPCTSTR   lpszMenuName; //窗口菜单的资源ID字符串
      • LPCTSTR   lpszClassName; //窗口类的名称
      • HICON     hIconSm; //窗口的小图标句柄
    • } WNDCLASSEX, *PWNDCLASSEX;
  • 全局窗口类注册,要在风格中增加CS_GLOBALCLASS,局部的窗口类则不添加此风格参数
    例如: WNDCLASSEX wcex = {0}; wcex.stle = ... | CS_GLOBALCLASS;
 
 
 

 

 
Win32API CreateWindow
  • HWND CreateWindowEx( DWORD dwExStyle, //窗口的扩展风格 LPCTSTR lpClassName, //已经注册的窗口类名称 LPCTSTR lpWindowName, //窗口标题栏名字 DWORD dwStyle, //窗口的基本风格 int x, //窗口左上角水平坐标位置 int y, //窗口左上角垂直坐标位置 int nWidth, //窗口的宽度 int nHeight, //窗口的高度 HWND hWndParent, //窗口的父窗口句柄 HMENU hMenu, //窗口菜单句柄 HINSTANCE hInstance, //应用程序实例句柄 LPVOID lpParam //窗口创建时附加参数 );
  • 子窗口的创建
    • 创建时要设置父窗口句柄
    • 创建风格要增加WS_CHILD|WS_VISIBLE

 

 
Win32API 创建窗口类的查找过程
  • 1 根据传入的ClassName,在局部窗口类中查找,
    • 找到执行2
    • 未找到执行3
  • 2 比较局部窗口类与创建时传入的“HINSTANCE变量
    • 相等则表示:创建和注册的窗口类在同一模块(同一进程创建),创建窗口并返回。
    • 不等则表示:创建和注册的窗口类不在同一模块(不同的进程创建),继续执行3
  • 3 全局窗口类查找
    • 找到执行4.
    • 未找到执行5.
  • 4 使用找到的窗口类的信息,创建窗口返回。
  • 5 系统窗口类中查找
    • 找到则创建窗口返回。
    • 未找到则创建窗口失败。

Win32API全局窗口类的注册与创建

标签:大小   width   api   round   hicon   附加数据   order   uname   进程创建   

原文地址:http://www.cnblogs.com/bing-z/p/6855807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!