`

VC窗口创建

阅读更多

       窗口的创建过程需要四个步骤,下面列出了创建步骤和这个过程中涉及的类和函数:

1.设计一个窗口类//很多特征(光标,图标,背景)WNDCLASS
2.注册窗口类//RegisterClass
3.创建窗口//首先定义句柄 如:HWND hwnd; CreateWindow
4.显示及更新窗口//显示窗口:ShowWindow,更新窗口:UpdateWindow

一、WNDCLASS类:

typedef struct _WNDCLASS {
    UINT       style;  //
    WNDPROC    lpfnWndProc;
    int        cbClsExtra; //额外的内存空间,属于这种窗口类的所有窗口所共享,通常情况下设为0
    int        cbWndExtra; //额外的内存空间,窗口内存空间
    HINSTANCE  hInstance; //句柄
    HICON      hIcon; //句柄,图标
    HCURSOR    hCursor; //光标句柄
    HBRUSH     hbrBackground; //画刷句柄
    LPCTSTR    lpszMenuName;
    LPCTSTR    lpszClassName;
} WNDCLASS, *PWNDCLASS;

第一个参数是指定类的类型,一般在Windows里面类有如下几种:(CS_BYTEALIGNCLIENT,CS_BYTEALIGNWINDOW,CS_CLASSDC,CS_DBLCLKS,CS_DROPSHADOW,CS_GLOBALCLASS,CS_HREDRAW,CS_NOCLOSE,CS_OWNDC,CS_PARENTDC,CS_SAVEBITS,CS_VRENRAW)它们都是只有一位为1的数值

第二个参数是回调函数,当应用程序收到给某一窗口的消息时,就应该调用某一函数来处理这条消息,这一调用过程不用应用程序自己来实施,而由操作系统完成,但是,回调函数本身的代码必须要应用程序自己完成。

第三和第四参数是系统额外分配的内存空间,其解释如上。

第五、六、七、八定义的是一个句柄,其结构类型如下:

HICON LoadIcon(
  HINSTANCE hInstance, // handle to application instance
  LPCTSTR lpIconName   // name string or resource identifier
);//可以用Windows自带的标准图标,也可以CreateIcon,DestroyIcon
HCURSOR LoadCursor(
  HINSTANCE hInstance,  // handle to application instance
  LPCTSTR lpCursorName  // name or resource identifier
);//标准光标

在第九和第十个参数中,LPCTSTR:LONG POINTER CONST STRING.

二、创建窗口:

HWND CreateWindow(
  LPCTSTR lpClassName,  // registered class name
  LPCTSTR lpWindowName, // window name
  DWORD dwStyle,        // window style
  int x,                // horizontal position of window
  int y,                // vertical position of window
  int nWidth,           // window width
  int nHeight,          // window height
  HWND hWndParent,      // handle to parent or owner window
  HMENU hMenu,          // menu handle or child identifier
  HINSTANCE hInstance,  // handle to application instance
  LPVOID lpParam        // window-creation data
);

三、显示窗口:

BOOL ShowWindow(
  HWND hWnd,     // handle to window
  int nCmdShow   // show state
);

四、更新窗口

BOOL UpdateWindow(
  HWND hWnd   // handle to window
);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics