博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win32基础编程-了解窗口类
阅读量:6699 次
发布时间:2019-06-25

本文共 1116 字,大约阅读时间需要 3 分钟。

    每一个窗口类都有一个与其相关的窗口过程,窗口过程的作用是处理窗口消息,由此来控制窗口的行为与外观。 
  
    在创建窗口前,必须要对窗口类进行注册。注册窗口类将会使窗口过程,类风格及其它的类属性与一个特定的类名关联。当调用CreateWindow或CreateWindowEx函数时指定了类名,系统将根据相应的窗口过程,类风格及类属性来创建窗口。 
  
     窗口类共有三种类型: 
     1.系统窗口类 
     2.应用程序全局窗口类 
     3.应用程序局部窗口类 

    这三种类型的窗口类在作用域,注册及销毁的方式上有所不同。 

  
    系统窗口类是由Windows注册的,一些可以被所有的进程所使用,而另外的则由系统内部调用。 
  
     系统窗口类的注册: 
     Windows 95/98/Me:在系统启动时注册。 
     Windows NT/2000/XP:当进程的某个线程初次调用Windows图形设备接口(GDI)时注册。

     下面是所有进程都可以使用的系统窗口类: 

   
     1.Button 
     2.ComboBox 
     3.Edit 
     4.ListBox 
     5.MDIClient 
     6.ScrollBar 
     7.Static 
  
     应用程序全局窗口类是由可执行文件或动态链接库(DLL)注册,并可被进程内其它模块所使用。

     应用程序全局窗口类的注册: 

  
     Windows NT/2000/XP:在DLL中创建应用程序全局窗口类,并在所有的进程中对其加载。加载该DLL的方法如下所示:

    在注册表的:KEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows分支下,加DLL的文件名加入AppInit_DLLs的值中。Windows将会在启动新的进程时,在进入新进程的入口前加载该DLL。该DLL必须在初始化的过程中注册窗口类,并在窗口风格中要指定CS_GLOBALCLASS。注销该窗口类可以使用UnregisterClass函数。

    应用程序局部窗口类由可执行文件或动态链接库(DLL)注册,但只能被该应用程序使用,尽管可以注册多个应用程序局部窗口类,但通常只注册一个,该窗口类支持应用程序主窗口的窗口过程。

    当注册该应用程序局部窗口类的模块被关闭,Windows就将其注册的窗口类销毁,也可以用UnregisterClass函数将其注销。

    Windows如何查找窗口类?

    1.查找应用程序局部窗口类,如果没有找到则 

    2.查找应用程序全局窗口类,如果没有找到则 
    3.查找系统窗口类

    你可以覆盖系统窗口类而不影响其它的应用程序,这就是说,你可以创建一个与系统窗口类同名的应用程序局部窗口类,这将使当前的应用程序使用应用程序局部窗口类,而其它的程序不受影响。

转载地址:http://mhgoo.baihongyu.com/

你可能感兴趣的文章
whu oj 1551 Pairs (莫队算法)
查看>>
iOS:iOS开发系列–打造自己的“美图秀秀”(中)
查看>>
程序猿的还有一出路:大数据project师
查看>>
FIREDAC直连ORACLE数据库
查看>>
Gac代码库分析(3)智能指针
查看>>
【转】MFC 字体LOGFONT
查看>>
iOS 图片填充 UIImageView
查看>>
Android 动态加载 (一) 态加载机制 案例一
查看>>
口唇口腔紅肿案
查看>>
ZeroMQ接口函数之 :zmq_ctx_get - 得到环境上下文的属性
查看>>
PyTorch为何如此高效好用?
查看>>
学习ASP.NET Core Razor 编程系列十八——并发解决方案
查看>>
【转】 Android BCM4330 蓝牙BT驱动调试记录
查看>>
NHibernate自定义集合类型(上):基本实现方式
查看>>
Microsoft Build 2016 Day 2 记录(多图慎入)
查看>>
JSON的理解
查看>>
LeetCode: Binary Tree Maximum Path Sum
查看>>
1.平凡之路-ORM概述
查看>>
开源情报订阅OpenTaxii+mysql+nginx 配置教程
查看>>
关于css命名的一点思考,探讨一下css命名空间的可行性
查看>>