windows样式(style)参考

[WTL] 窗体Style的含义
比较有用的设置:
(1)
WS_POPUP:弹出式窗体,没有标题栏!
WS_BORDER:细的黑边框
WS_OVERLAPPED:一般的有标题栏的窗体,见多了。
WS_CHILD:子窗体,一般用于Frame里面的窗体
(2)
WS_CAPTION:标题栏
WS_SYSMENU:系统菜单(只有设置后才有最小化、最大化、关闭)
WS_MINIMIZEBOX :最小化按钮
WS_MAXIMIZEBOX:最大化按钮
WS_MINIMIZE:启动时最小化
WS_MAXIMIZE:启动时最大化

(3)
WS_EX_TOOLWINDOW:不在任务栏里显示条目
WS_EX_WINDOWEDGE:
WS_EX_CLIENTEDGE:具有凹陷感

[参考]
在winuser.h中定义:

/*
* Window Styles
*/
#define WS_OVERLAPPED 0×00000000L
#define WS_POPUP 0×80000000L
#define WS_CHILD 0×40000000L
#define WS_MINIMIZE 0×20000000L
#define WS_VISIBLE 0×10000000L
#define WS_DISABLED 0×08000000L
#define WS_CLIPSIBLINGS 0×04000000L
#define WS_CLIPCHILDREN 0×02000000L
#define WS_MAXIMIZE 0×01000000L
#define WS_CAPTION 0×00C00000L /* WS_BORDER | WS_DLGFRAME */
#define WS_BORDER 0×00800000L
#define WS_DLGFRAME 0×00400000L
#define WS_VSCROLL 0×00200000L
#define WS_HSCROLL 0×00100000L
#define WS_SYSMENU 0×00080000L
#define WS_THICKFRAME 0×00040000L
#define WS_GROUP 0×00020000L
#define WS_TABSTOP 0×00010000L

#define WS_MINIMIZEBOX 0×00020000L
#define WS_MAXIMIZEBOX 0×00010000L

#define WS_TILED WS_OVERLAPPED
#define WS_ICONIC WS_MINIMIZE
#define WS_SIZEBOX WS_THICKFRAME
#define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW

/*
* Common Window Styles
*/
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \
WS_CAPTION | \
WS_SYSMENU | \
WS_THICKFRAME | \
WS_MINIMIZEBOX | \
WS_MAXIMIZEBOX)

#define WS_POPUPWINDOW (WS_POPUP | \
WS_BORDER | \
WS_SYSMENU)

#define WS_CHILDWINDOW (WS_CHILD)

/*
* Extended Window Styles
*/
#define WS_EX_DLGMODALFRAME 0×00000001L
#define WS_EX_NOPARENTNOTIFY 0×00000004L
#define WS_EX_TOPMOST 0×00000008L
#define WS_EX_ACCEPTFILES 0×00000010L
#define WS_EX_TRANSPARENT 0×00000020L
#if(WINVER >= 0×0400)
#define WS_EX_MDICHILD 0×00000040L
#define WS_EX_TOOLWINDOW 0×00000080L
#define WS_EX_WINDOWEDGE 0×00000100L
#define WS_EX_CLIENTEDGE 0×00000200L
#define WS_EX_CONTEXTHELP 0×00000400L

#endif /* WINVER >= 0×0400 */
#if(WINVER >= 0×0400)

#define WS_EX_RIGHT 0×00001000L
#define WS_EX_LEFT 0×00000000L
#define WS_EX_RTLREADING 0×00002000L
#define WS_EX_LTRREADING 0×00000000L
#define WS_EX_LEFTSCROLLBAR 0×00004000L
#define WS_EX_RIGHTSCROLLBAR 0×00000000L

#define WS_EX_CONTROLPARENT 0×00010000L
#define WS_EX_STATICEDGE 0×00020000L
#define WS_EX_APPWINDOW 0×00040000L

#define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
#define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)

#endif /* WINVER >= 0×0400 */

#if(_WIN32_WINNT >= 0×0500)
#define WS_EX_LAYERED 0×00080000

#endif /* _WIN32_WINNT >= 0×0500 */

#if(WINVER >= 0×0500)
#define WS_EX_NOINHERITLAYOUT 0×00100000L // Disable inheritence of mirroring by children
#define WS_EX_LAYOUTRTL 0×00400000L // Right to left mirroring
#endif /* WINVER >= 0×0500 */

#if(_WIN32_WINNT >= 0×0500)
#define WS_EX_COMPOSITED 0×02000000L
#define WS_EX_NOACTIVATE 0×08000000L
#endif /* _WIN32_WINNT >= 0×0500 */

WS_BORDER 创建一个有边框的窗口
WS_CAPTION 创建一个有标题栏的窗口
WS_CHILDWINDOW(or WS_CHILD)
创建一个子窗口(不能与WS_POPUP一起使用)
WS_CLIPCHILDREN 当在父窗口内绘制时,把子窗口占据的区域剪切在外,即不在该区域内绘图
WS_CLIPSIBLINGS 裁剪相互有关系的子窗口,不在被其它子窗口覆盖的区域内绘图,仅与WS_CHILD一起使用
WS_DISABLED 创建一个初始被禁止的窗口
WS_DLGFRAME 创建一个有双边框但无标题的窗口
WS_HSCROLL 创建一个带水平滚动杠的窗口
WS_VSCROLL 创建一个带垂直滚动杠的窗口
WS_ICONIC 创建一个初始为图标的窗口,仅可以与WS_OVERLAPPEDWINDOWS一起使用
WS_MAXIMIZE 创建一个最大尺寸的窗口
WS_MINIMIZE 创建一个最小尺寸的窗口(即图标)
WS_MAXIMIZEBOX 创建一个带有极大框的窗口
WS_MINIMIZEBOX 创建一个带有极小框的窗口
WS_OVERLAPPED 创建一个重叠式窗口,重叠式窗口带有标题和边框
WS_POPUP 创建一个弹出式窗口,不能与WS_CHILD一起使用
WS_SYSMENU 窗口带有系统选单框,仅用于带标题栏的窗口
WS_THICKFRAME 创建一个边框的窗口,使用户可以直接缩放窗口
WS_VISIBLE 创建一个初始可见的窗口

posted @ 2013-07-26 17:42  遥望星空  阅读(823)  评论(0编辑  收藏  举报