Share via


CMDIFrameWnd::GetWindowMenuPopup

Llame a esta función miembro para obtener un identificador del elemento emergente actual denominado “ventana” (el menú emergente con los elementos de menú para la administración de ventanas MDI).

virtual HMENU GetWindowMenuPopup(
   HMENU hMenuBar 
);

Parámetros

  • hMenuBar
    la barra de menús actual.

Valor devuelto

El menú emergente de la ventana si existe; si no NULL.

Comentarios

La implementación predeterminada busca un menú emergente que contiene comandos del menú Ventana estándar como ID_WINDOW_NEW y ID_WINDOW_TILE_HORZ.

Invalide esta función miembro si tiene un menú Ventana que no use los id. de comando estándar de menú.

Ejemplo

// 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)
      return;

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

   // 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)
      return;

   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();
   do
   {
      CString str;
      child->GetWindowText(str);
      if (str == caption)
      {
         child->MDIActivate();        // or MDIActivate(child);
         break;
      }

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

Requisitos

encabezado: afxwin.h

Vea también

Referencia

Clase CMDIFrameWnd

Gráfico de jerarquía

CMDIFrameWnd::MDIGetActive