Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining


Call this member function to obtain a handle to the current pop-up menu named "Window" (the pop-up menu with menu items for MDI window management).

virtual HMENU GetWindowMenuPopup( 
   HMENU hMenuBar  


The current menu bar.

The Window pop-up menu if one exists; otherwise NULL.

The default implementation looks for a pop-up menu containing standard Window menu commands such as ID_WINDOW_NEW and ID_WINDOW_TILE_HORZ.

Override this member function if you have a Window menu that does not use the standard menu command IDs.

// CMainFrame::OnActivateFirstMDIChild() is a menu command handler for 
// CMainFrame class, which in turn is a CMDIFrameWnd-derived class. 
// It looks for the caption of the first created MDI child window from 
// the Window popup menu, and then activate the child window. 
void CMainFrame::OnActivateFirstMDIChild() 
   // Get handle to the Window pop-up menu.
   CMenu* menubar = GetMenu();
   CMenu* wmenu = CMenu::FromHandle(GetWindowMenuPopup(menubar->GetSafeHmenu()));
   if (wmenu == NULL)

   // Get the caption of the first created MDI child window.
   CString caption;
   if (!wmenu->GetMenuString(AFX_IDM_FIRST_MDICHILD, caption, MF_BYCOMMAND))

   // Get the actual name of the first created MDI child window by  
   // getting rid of the number and space, e.g. "&1 MDI 1".
   int pos = caption.FindOneOf(_T(" "));
   if (pos == -1)

   caption = caption.Right(caption.GetLength() - (pos + 1));

   // Get the CWnd* of the first created MDI child window by comparing 
   // the caption of each MDI child window in the MDI application.  
   // Activate the first created MDI child window if found.
   CMDIChildWnd* child = MDIGetActive();
      CString str;
      if (str == caption)
         child->MDIActivate();        // or MDIActivate(child); 

      child = (CMDIChildWnd*) child->GetWindow(GW_HWNDNEXT);
   while (child);

Header: afxwin.h

© 2015 Microsoft