Error con menu (solucionado)

Iniciado por nolasco281, 10 Abril 2014, 21:10 PM

0 Miembros y 1 Visitante están viendo este tema.

nolasco281

Hola como estan.

Mi siquente consulta es, estaba tratando de hacer un menu pero me muestra el siquiente error.

Código (cpp) [Seleccionar]
[Error] cast from 'HMENU' to 'UINT {aka unsigned int}' loses precision [-fpermissive]

Y esta es la funcion.
Código (cpp) [Seleccionar]
void InsertarMenu(HWND hwnd)
{
HMENU hMenu1, hMenu2; //HMENU un manipulador especial para menus
hMenu1 = CreateMenu(); //Manipulador de la barra de menus
hMenu2 = CreateMenu(); //Manipulador para el primer menu pop-up

AppendMenu(hMenu2, MF_STRING, CM_PRUEBA, "&Prueba"); //1 item tipo texto
AppendMenu(hMenu2, MF_SEPARATOR, 0, NULL); //2 item(separador)
AppendMenu(hMenu2, MF_STRING, CM_SALIR, "&Salir"); //3 item

//Insercion del menu pop-up
AppendMenu(hMenu1, MF_STRING | MF_POPUP, (UINT)hMenu2, "&Principal");  //item tipo texto y menu pop-up
SetMenu(hwnd, hMenu1); //Asigna el menu a la ventana hWnd
}


Gracias.




Hola me respondo a mi mismo.

la solucion es en la siquente linea:

Código (cpp) [Seleccionar]
AppendMenu(hMenu1, MF_STRING | MF_POPUP, (UINT_PTR)hMenu2, "&Principal");

UINT_PTR es un tipo entero suficientemente grande para contener todos los valores del puntero, por lo tanto, las advertencias se va.

Encambio la razon de este error es la siquiente.

En esta Instruccion no tiene el mismo tama~no. está tratando de apuntar a algo, pero de distinto tama~no.
Código (cpp) [Seleccionar]
AppendMenu(hMenu1, MF_STRING | MF_POPUP, (UINT)hMenu2, "&Principal");

Saludos y gracias a los que pasaron.

Lo que se puede imaginar... se puede programar.