[C con Clase] Crear mas de un menu en tiempo de ejecucuion

humbert a humbert_frig en hotmail.com
Vie Mar 18 03:11:54 CET 2011


En el capitulo 5 se describe la manera de crear menus sin utilizar los recursos pero intente hacer una barra de menus con mas de una opcion( del tipo archivo, ver, editar, etc) y solo se visualiza el ultime elemento. Esta es la funcion para insertar el menu:

Desearia ayuda para que esto funcione

void InsertarMenu(HWND hwnd)
{
   HMENU hMenu1,       // Manipula la barra de menu
         hMenu2,       // Manipula cada elemento pop-up
         hMenu3,
         hMenu4;
   
   hMenu1 = CreateMenu(); /* Manipulador de la barra de menú */
   hMenu2 = CreateMenu(); /* Manipulador para el primer menú pop-up */
   hMenu3 = CreateMenu();
   hMenu4 = CreateMenu();
          /*  ApendMenu sirve para añadir elementos a cada menu  */
   /*  1.-Donde se inserta el item, 
       2.-Atributos del item, 
       3.-Identificador o manipulador de menu o cero
       4.-Texto del item*/
   AppendMenu(hMenu2, MF_STRING, CM_PRUEBA, "&Prueba"); /* 1º ítem */
   AppendMenu(hMenu2, MF_STRING, CM_SALIR, "&Salir");   /* 3º ítem */
   AppendMenu(hMenu2, MF_SEPARATOR, 0, NULL);
   AppendMenu(hMenu2, MF_STRING, CM_NUEVO, "&Nuevo");
   
   AppendMenu(hMenu4, MF_STRING, CM_PRUEBA, "&Not"); /* 1º ítem */
   AppendMenu(hMenu4, MF_SEPARATOR, 0, NULL);           /* 2º ítem (separador) */
   AppendMenu(hMenu4, MF_STRING, CM_SALIR, "&Now");   /* 3º ítem */
   AppendMenu(hMenu4, MF_SEPARATOR, 0, NULL);
   /* Inserción del menú pop-up */
   AppendMenu(hMenu1, MF_STRING | MF_POPUP, (UINT)hMenu2 , "&Principal"); 
   AppendMenu(hMenu3, MF_STRING | MF_POPUP, (UINT)hMenu4 , "&Second");
   SetMenu (hwnd, hMenu1);  /* Asigna el menú a la ventana hWnd */
   SetMenu (hwnd, hMenu3);
}


Más información sobre la lista de distribución Cconclase