首页 > 代码库 > 窗口样式

窗口样式

调整CreateWindow函数里窗口样式参数 

效果一:无标题栏可改变大小

WS_POPUPWINDOW | WS_SIZEBOX 
or 
WS_POPUPWINDOW | WS_THICKFRAME
注:拦截WM_GETMINMAXINFO禁止改变大小
lpMinMaxInfo->ptMinTrackSize.x = lpMinMaxInfo->ptMaxTrackSize.x = 300
lpMinMaxInfo->ptMinTrackSize.y = lpMinMaxInfo->ptMaxTrackSize.y = 200;

效果二:无标题栏无边框

WS_POPUPWINDOW or WS_POPUP
默认大小为0,0
注:也可以拦截WM_GETMINMAXINFO消息,使最大尺寸大于屏幕尺寸,从而实现全屏,但坐标系可能有偏差
     WS_POPUP 与 WS_POPUPWINDOW的区别在于,前者无法在任务栏关闭窗口,而后者可以

效果三:全屏

WS_POPUPWINDOW | WS_MAXIMIZE
注:
需要用ShowWindow(hwnd, SW_SHOW);

效果四:无法改变大小

WS_SYSMENU | WS_MINIMIZEBOX
or
WS_BORDER  (无法关闭)

效果五:子窗口

当申明为WS_CHILD时,以下事件肯定会发生
父窗口重绘时,子窗口也会可以到收到WM_PAINT的消息来重绘
而申明为一个WS_POPUP的子窗口就不会收到WM_PAINT消息。
父窗口的HDC和子窗口的HDC是重叠的,也就是,通过父窗口的HDC可以子窗口的区域里画图,并且可以画到非客户区。而申明为一个WS_POPUP窗口,父窗口的HDC和子窗口的HDC是互斥的。