这三种类型的窗口类在作用域,注册及销毁的方式上有所不同。
系统窗口类是由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.查找系统窗口类你可以覆盖系统窗口类而不影响其它的应用程序,这就是说,你可以创建一个与系统窗口类同名的应用程序局部窗口类,这将使当前的应用程序使用应用程序局部窗口类,而其它的程序不受影响。