HOWTO: Determine the Topmost Pop-Up Window
ID: 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
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.
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.
For additional information on changing the Z-order of an MDI window, query
on the following words in the Microsoft Knowledge Base:
WM_WINDOWPOSCHANGED and MDICREATESTRUCT and WS_EX_TOPMOST
Additional query words:
WIN16SDK
Keywords : kbNTOS kbGrpUser kbWinOS kbWndw
Version :
Platform :
Issue type : kbhowto
Last Reviewed: March 6, 1999