Question and Answer Database FAQ1489C.txt How to keep a window always on top Category :OWL Platform :All Product :BC++ 5.x Question: How can i leave a Window (excat an TDialog Object) always on top (for example like the clock in Win 3.1) Answer: To keep a window on top of the others at all time, use the EV_WM_ACTIAVTE message and EvActivate function. I'll include some of the code below: void DFrame::EvActivate(UINT active, BOOL minimized, HWND hWndOther) { ::BringWindowToTop(GetLastActivePopup()); DefaultProcessing(); } Also remember to include the lines HWND hwndInsertAfter = HWND_TOPMOST; and SetWindowPos(hwndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); in SetupWindow. Futher more the InitInstance function in the application class should read something like this: void DApp::InitInstance() { if (hPrevInstance) { HWND hwnd = ::FindWindow(WINCLASSNAME, 0); if (hwnd) { hwnd = GetLastActivePopup(hwnd); BringWindowToTop(hwnd); ShowWindow(hwnd, SW_RESTORE); } PostAppMessage(GetCurrentTask(), WM_QUIT, 0, 0); } else TApplication::InitInstance(); } 7/2/98 10:32:32 AM
Last Modified: 01-SEP-99