2017-07-20 5 views
0

Ich versuche, ein Fenster von CreateWindowEx zu erstellen, aber Nähte sogar ich gebe beide dwExStyledwStyle Wert 0, das Fenster immer noch WS_CAPTION Stil.Warum erstellt CreateWindowEx WS_CAPTION standardmäßig?

-Code-Schnipsel, wie folgend:

_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] helfen würden. Wir wissen nicht, welche Werte Sie hier passieren. Vielleicht ist 'iStyle' 'WS_CAPTION'. –

+0

0 ist speziell, bedeutet "Standardstile verwenden". Das hat vor 32 Jahren etwas Sinn gemacht. –

Antwort

2

dwStyle = 0x00000000L bedeutet WS_OVERLAPPED or WS_TILED hat dieses Fenster eine Titelleiste und eine Grenze.

Window Styles

1

Wie emax sagt WS_OVERLAPPED (0) ist die Standardeinstellung und Ergebnisse in:

Das Fenster eine überlappende Fenster ist. Ein überlapptes Fenster hat eine Titelleiste und einen Rahmen. Entspricht dem WS_TILED-Stil.

Wenn Sie ein Kind Fenster erstellen, müssen Sie WS_CHILD angeben und wenn Sie ein „Pop-up“ Fenster erstellen, müssen Sie WS_POPUP oder WS_POPUPWINDOW verwenden.

würde ein Tooltip zum Beispiel verwendet WS_POPUP und WS_EX_TOOLWINDOW + WS_EX_TOPMOST ...

Verwandte Themen