HOWTO: Determine the Topmost Pop-Up Window |
Q66943
The information in this article applies to:
- Microsoft Win32 Software Development Kit (SDK)
- Microsoft Windows Software Development Kit (SDK) versions 3.0, 3.1
SUMMARY
When an application has many pop-up child windows (with a common parent window), the GetNextWindow() function can be used when one pop-up window is closed to determine the next topmost pop-up window that remains.
MORE INFORMATION
The following code fragment shows a window procedure for simple pop-up windows (modified from the PARTY program in Petzold's "Programming Windows"). In the WM_CLOSE case, the handle received by the pop-up window procedure is the handle of the pop-up to be closed. This sample activates the topmost pop-up window that remains by giving it the focus.
long FAR PASCAL PopupWndProc (hWnd, iMessage, wParam, lParam) HWND hWnd; unsigned iMessage; WORD wParam; LONG lParam; { HWND hWndPopup; switch (iMessage) { case WM_CLOSE: hWndPopup = GetNextWindow(hWnd, GW_HWNDNEXT); if (hWndPopup) SetFocus(hWndPopup); break; } return DefWindowProc (hWnd, iMessage, wParam, lParam) ; }
NOTE: In Windows 3.1, two messages are sent to an application when its Z- order is changing: WM_WINDOWPOSCHANGING and WM_WINDOWPOSCHANGED. When a window is closed (as in the example shown above) these two message will be sent to all window procedures.
REFERENCES
For additional information on changing the Z-order of an MDI window, click the article number below to view the article in the Microsoft Knowledge Base:
Q108315 HOWTO: Keep an MDI Window Always on Top
or query on the following words in the Microsoft Knowledge Base:
WM_WINDOWPOSCHANGED and MDICREATESTRUCT and WS_EX_TOPMOST
Additional query words: WIN16SDK
Keywords : kbOSWinNT kbOSWin2000 kbSDKWin32 kbGrpDSUser kbOSWin kbWndw
Issue type : kbhowto
Technology : kbWin32SDKSearch kbAudDeveloper kbWin3xSearch kbSDKSearch kbWin32sSearch kbWinSDKSearch kbWinSDK300 kbWinSDK310
Last Reviewed: July 12, 2000 |