The difference between a topmost window and a nontopmost window is an extended window style bit. WS_EX_TOPMOST makes a window a topmost window. You can create a topmost frame window by including a WS_EX_TOPMOST flag in the call to Create, like this:
|
The alternative is to add the style bit after the window is created by calling SetWindowPos with a &wndTopMost parameter, as shown here:
|
You can convert a topmost window into a nontopmost window by calling SetWindowPos with the first parameter equal to &wndNoTopMost rather than &wndTopMost.
Clock uses SetWindowPos to make its window a topmost window when Stay On Top is checked in the system menu and a nontopmost window when Stay On Top is unchecked. The work is done by CMainWindow::SetTopMostState, which is called by OnSysCommand. When Stay On Top is checked, Clock is visible on the screen at all times, even if it's running in the background and it overlaps the application running in the foreground.