为什么CreateWindowEx WS_POPUP会创建边框?

时间:2013-06-29 21:24:38

标签: c++ winapi opengl

我试图找出为什么我的应用程序有一个很小的像素边框。

我的理解是WS_POPUP应该解决问题;

DWORD wndExStyle = WS_EX_OVERLAPPEDWINDOW;
DWORD wndStyle =  WS_POPUP | WS_SYSMENU;
g_hWnd = CreateWindowEx(wndExStyle, wcl.lpszClassName, L"junk",
wndStyle, 0, 0, 0, 0, 0, 0, wcl.hInstance, 0);
//Somewhere later
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
wglCreateContextAttribsARB(g_hDC, 0, attribList);
//Finally
ShowWindow(g_hWnd, SW_MAXIMIZE);
UpdateWindow(g_hWnd);

编辑1: 删除了WS_BORDER

enter image description here

2 个答案:

答案 0 :(得分:3)

该边界是由使用WS_EX_OVERLAPPEDWINDOW引起的。 WS_EX_OVERLAPPEDWINDOW被定义为WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE的事实清楚地说明了发生了什么。

删除该扩展样式,边框消失。

答案 1 :(得分:2)

在样式中包含WS_BORDER会导致将薄边框添加到窗口中。从风格中删除它。