windows程序设计读书笔记-------------windows的窗口类

来源:互联网 发布:linux就该这么学实体书 编辑:程序博客网 时间:2024/05/16 15:32

           windows的窗口类主要分为三种:系统全局窗口类,应用专用窗口类,应用全局窗口类。

 系统全局窗口类

       又称预先定义窗口类,windows已经定义好,我们不需注册,直接在创建窗口的时候引用就可以了。windows为我们提供了一些系统全局窗口类,不完全是:

       :Button类(按钮类)

       :Static类(静态标签类)

       :ListBox类(列表框类)

       :Edit类(编辑框类)

       :ScrollBar类(滚动条类)

       :ComboBox 类(下拉列表类)

      这种窗口类只要windows启动后,任何时候都可以调用的窗口类

应用专用窗口类

      就是我们常用的那种窗口类,其需要程序员自己填写“资料”,并且调用RgisterClass函数注册。

     这种窗口类只有当我们注册以后才能使用。

应用全局窗口类

      其是属于应用程序的,其只要应用程序启动,其生成的任何进程都可以使用,无需注册。其生成的方法是:将预定义的注册窗口类代码植入某个DLL动态链接库中,当应用程序启动的时候,调用该链接库就可以了,所以无需注册。当值得注意的是,为了表明此为应用全局窗口类,我们需在创建窗口的Create函数中指定其窗口样式为CS_GLOBALCLASS。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

窗口类的结构

 

WNDCLASS结构包含的是一般的窗口类的信息

 

typedef struct tagWNDCLASS {       UINT      style;//窗口样式    WNDPROC   lpfnWndProc;//窗口过程指针    int       cbClsExtra;//附加项    int       cbWndExtra;//附加项    HINSTANCE hInstance;//应用程序实例句柄    HICON     hIcon;//窗口的图标    HCURSOR   hCursor;//窗口鼠标光标样式    HBRUSH    hbrBackground;//窗口背景颜色    LPCSTR    lpszMenuName;//窗口的菜单名称    LPCSTR    lpszClassName;//窗口类的名称} WNDCLASS;

 

注册窗口类

       WNDCLASS wndclass;

      RigsterClass(&wndclass);

 

创建窗口

      HWND CreateWindow(

  LPCTSTR lpClassName, //窗口类名

  LPCTSTR lpWindowName, //创建的窗口的标题

  DWORD dwStyle, //创建的窗口的样式

  int x, //窗口左上角的x坐标

  int y, //窗口右上角的y坐标

  int nWidth, //窗口的宽

  int nHeight, //窗口的高

  HWND hWndParent, //窗口的父窗口句柄,无父窗口时为NULL

  HMENU hMenu, //窗口的菜单

  HANDLE hlnstance, //拥有窗口的应用程序实例句柄

  LPVOID lpParam //附加参数);

显示窗口

      ShowWindow和UpdateWindow函数。