窗口风格分为三种,WS_CHILD,WS_POPUP,WS_OVERLAPPED,这可以从WinUser.h中看出来,如下所示:
其中:
#define WS_OVERLAPPED 0x00000000L
#define WS_POPUP 0x80000000L
#define WS_CHILD 0x40000000L
这三种风格的窗口是无法并存的,如果通过下面语句创建窗口
HWND hWnd = ::CreateWindowExW(0, szWindowClass, L"12345", WS_CHILD | WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, \
200, 200, 500, 500, g_hWnd, nullptr, hInst, nullptr);
则,窗口的风格是WS_CHILD,这可以通过它们的枚举值看出来。
如果通过下面语句创建窗口
HWND hWnd = ::CreateWindowExW(0, szWindowClass, L"12345", WS_CHILD | WS_POPUP | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, \
200, 200, 500, 500, g_hWnd, nullptr, hInst, nullptr);
则,窗口的风格是WS_POPUP,当WS_CHILD 和WS_POPUP同时存在时,系统默认风格为WS_POPUP。