zoukankan      html  css  js  c++  java
  • Win32基础编程了解窗口类

        每一个窗口类都有一个与其相关的窗口过程,窗口过程的作用是处理窗口消息,由此来控制窗口的行为与外观。 
      
        在创建窗口前,必须要对窗口类进行注册。注册窗口类将会使窗口过程,类风格及其它的类属性与一个特定的类名关联。当调用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.查找系统窗口类

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

  • 相关阅读:
    Android OpenGL ES 2.0 (四) 灯光perfragment lighting
    Android OpenGL ES 2.0 (五) 添加材质
    冒泡排序函数
    javascript object 转换为 json格式 toJSONString
    Liunx CentOS 下载地址
    jquery 图片切换特效 鼠标点击左右按钮焦点图切换滚动
    javascript 解析csv 的function
    mysql Innodb Shutdown completed; log sequence number解决办法
    Centos 添加 yum
    javascript 键值转换
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/268897.html
Copyright © 2011-2022 走看看