实际上,课堂风格意味着什么?它困惑了我.这是来自MSDN:style指定类样式.该成员可以是类样式的任意组合.
typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
Run Code Online (Sandbox Code Playgroud)
类样式是影响该特定类的窗口的每个实例的属性.为了澄清,让我们比较下面的窗口实例属性和类属性.假设您创建了一个名为的新Windows类MyCoolControl,并创建了以下几个实例:
每个实例都有自己的位置,窗口文本以及启用和可见状态 - 这些是窗口实例属性,您可以在一个窗口中独立设置这些属性.
但是,此控件的所有实例将共享相同的WndProc,如您用于创建类的WNDCLASS中所指定的那样.它们也具有相同的类属性,例如窗口是否接收双击消息而不是两个单独的单击消息(CS_DBLCLKS类样式位),或者窗口是否在调整大小时完全重绘(CS_HREDRAW,CS_VREDRAW),或者是否窗口有一个阴影(CS_DROPSHADOW).MSDN上列出了完整的类样式列表.
因此,例如,如果您希望窗口具有边框,那么这是一个窗口样式位(WS_BORDER),并在CreateWindow中将其指定为窗口样式值(或者可以使用SetWindowLongPtr(GWL_STYLE)在每个窗口中更改它)),只有那个窗口受到影响.但是,如果要创建具有投影的窗口,请在WNDCLASS的样式成员中指定它,并且它会影响该类的所有实例.
(有一些例外 - 在WNDCLASS中指定的WndProc实际上是该类窗口的默认wndproc;如果你愿意的话,你可以实际覆盖每个实例.但是大局仍然大致相同:WNDCLASS和CS_样式是全面的设置,而WS_ 1和CreateWindow的参数是特定于那个窗口的.)
| 归档时间: |
|
| 查看次数: |
2176 次 |
| 最近记录: |