2017-07-20 54 views
0

我試圖通過CreateWindowEx創建一個窗口,但接縫連我都給dwExStyledwStyle值0,窗口仍然有WS_CAPTION樣式。爲什麼CreateWindowEx默認會添加WS_CAPTION?

代碼片段如下:

_hWnd = CreateWindowExW(iExStyle, pszClassName, pszTitle, iStyle | WS_CLIPCHILDREN, dX, dY, dWidth, dHeight, 
          hWndParent, 0, hInstance, NULL); 
    ASSERT(GetWindowLong(_hWnd, GWL_STYLE) & WS_CAPTION == 0); //<---- This will failed. 
+2

A [MCVE]會有所幫助。我們不知道你在這裏傳遞什麼樣的價值。也許'iStyle'是'WS_CAPTION'。 –

+0

0是特殊的,意思是「使用默認樣式」。這在32年前有點合理。 –

回答

2

dwStyle = 0x00000000L意味着WS_OVERLAPPED or WS_TILED,這個窗口有一個標題欄和邊界。

Window Styles

1

作爲EMAX說,WS_OVERLAPPED(0)是在默認和結果:

窗口是一個重疊的窗口。重疊的窗口有一個標題欄和一個邊框。與WS_TILED樣式相同。

如果要創建一個子窗口,必須指定WS_CHILD,如果你正在創建一個「彈出」窗口中,你必須使用WS_POPUPWS_POPUPWINDOW

A爲例工具提示會用WS_POPUPWS_EX_TOOLWINDOW + WS_EX_TOPMOST ...

相關問題