1.窗口类样式WNDCLASS.style
CS_VREDRAW |
提供窗口位置变化事件和高度变化事件的处理程序,功能是重绘窗口 |
CS_HREDRAW |
提供窗口位置变化事件和宽度变化事件的处理程序,功能是重绘窗口 |
CS_DBLCLKS |
提供窗口双击事件的处理程序,功能是使窗口在最大化与正常尺寸之间切换 |
CS_BYTEALIGNCLIENT |
提供窗口位置变化事件的处理程序,功能是使位置变化后客户区的左边坐标是8的倍数 |
CS_BYTEALIGNWINDOW |
提供窗口位置变化事件的处理程序,功能是使位置变化后窗口的左边坐标是8的倍数 |
CS_NOCLOSE |
使系统栏上的关闭按钮和系统菜单上的关闭命令失效 |
CS_DROPSHADOW |
实现窗体边框阴影效果 |
CS_SAVEBITS |
将被窗口遮挡的部分保存为位图,当窗口移开后,用此位图可快速恢复被遮挡的部分。通常菜单栏、对话框及下拉框等需此功能 |
CS_OWNDC |
使基于此窗口类的每个窗口都拥有自己的设备描述表 |
CS_CLASSDC |
使基于此窗口类的所有窗口都共享一个设备描述表,但同一时刻只能一个窗体操作设备描述表 |
CS_PARENTDC |
基于此窗口类的窗口使用其父窗口类的设备描述表(父窗口和子窗口不一定属于同一窗口类) |
CS_GLOBALCLASS |
使窗体类是应用程序全局类(一个在进程中对所有模块都有效的exe或dll注册的窗体类) |
此外,移动窗口事件(鼠标移动=鼠标左键按下+鼠标移动+鼠标左键释放,键盘移动=……)是默认支持的(即内置支持的),所以默认事件处理程序是必不可少的,否者程序无法运行。
DefWindowProc(hwnd, uMsg, wParam, lParam);
2.窗口外观样式window style
WS_OVERLAPPED=WS_TILED=WS_BORDER|WS_CAPTION WS_OVERLAPPEDWINDOW=WS_TILEDWINDOW=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX WS_POPUPWINDOW=WS_POPUP|WS_BORDER|WS_SYSMENU |
WS_BORDER WS_CAPTION(包含WS_BORDER不能与WS_DLGFRAME共存) WS_DLGFRAME(包含WS_CAPTION不能与WS_CAPTION共存) WS_POPUP(不能与WS_CHILD共存) WS_CHILD=WS_CHILDWINDOW (不能与WS_POPUP共存) |
WS_SYSMENU(包含WS_CAPTION,含关闭按钮) WS_THICKFRAME=WS_SIZEBOX(包含WS_CAPTION) |
WS_MINIMIZEBOX(包含WS_CAPTION需要指定WS_SYSMENU才有效) WS_MAXIMIZEBOX(包含WS_CAPTION需要指定WS_SYSMENU才有效) WS_VSCROLL(包含WS_CAPTION) WS_HSCROLL(包含WS_CAPTION) WS_MAXIMIZE(包含WS_CAPTION优先纺低于窗口样式SW_XXX) WS_MINIMIZE=WS_ICONIC(包含WS_CAPTION优先纺低于窗口样式SW_XXX) |
WS_VISIBLE(EnableWindow) WS_DISABLED(ShowWindow|SetWindowPos) |
WS_GROUP(包含WS_CAPTION,指定此属性的控件与之后创建的且未指定此属性的控件属于同一组) WS_TABSTOP(包含WS_CAPTION,指定此属性的同一组的控件之间可通过Tab键切换聚焦) |
WS_CLIPSIBLINGS(包含WS_CAPTION,作为子窗口当重绘时不重绘被其它子窗口遮挡的区域) WS_CLIPCHILDREN(包含WS_CAPTION,作为父窗口当重绘时不重绘制被子窗口遮挡的区域) |
3.窗口显示样式