调整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;
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是互斥的。