This is a screenshot of Steam's client window being resized.
Steam's client window has two cool features.
Let's say I wanna create similar window using winapi. How can I do it?
I don't ask about widget-management related stuff, but about technical winapi tricks.
Basically, you can do almost anything with your window. But most of the tricks are to be implemented manually.
WS_BORDER
and WS_CAPTION
when creating a WS_POPUP
window. After that you will have to draw a border and a caption yourself. Handle WM_ERASEBKGND
and WM_PAINT
messages, draw background, menus, all as usual.WM_SIZE
message, processes it, Windows sends a WM_ERASEBKGND
message which the window ignores. Thus, the system draws a new shadow around new window frame which is not yet filled with new window image. And here we get this cool glass effect: old image of underlaying windows with a windows aero shadow. You can try to disable windows shadows and look at this effect.In order to create a custom resizing border, you might find useful these functions: LoadCursor
, SetCursor
, MoveWindow
.
In order to draw your custom borders, you can use standart GDI functions. Also you can create a handful of child windows and delegate drawing to them. This is basics of winapi.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With