j.a.estevan

Si no eres parte de la solución, eres parte del problema

HOWTO: AX – Modificar el menu contextual de un objeto

Al hacer “click derecho” sobre un objeto en Dynamics Axapta se ejecuta el metodo showContextMenu, el cual como siempre, podemos sobrecargar. Esta es la pinta que tiene inicialmente:

public int showContextMenu(int MenuHandle)
{
   int ret;

   ret = super(MenuHandle);

   return ret;
}

Es como la mayoría de métodos sobrecargados. Vamos a sustituirlo por este otro código:

int showContextMenu(int MenuHandle)
{
   int         ret;
   PopupMenu   menu;
   int         menuItem;
   ;

   // Crea un nuevo menú utilizando el manejador recibido por parámetros
   menu = PopupMenu::create(MenuHandle, this.hWnd());

   // Añade un nuevo Menu Item al menú recién creado
   menuItem = menu.insertItem("Mi nuevo menú");

   // Abre el menú
   ret = menu.draw();

   // Comprueba el Menu Item que se ha pulsado
   if (ret == menuItem)
   {
       // Si es el mío, pongo código aqui

       Box::info('Pon tu código aquí!');

       return 0;
   }

   // Si ha pulsado alguno que no es el mío, se lo devuelvo al estándar
   return ret;
}

Como se puede ver en el ejemplo, podemos añadir por código un nuevo MenuItem al menu contextual y a la vez, capturar la pulsación del mismo para poder ejecutar nuestro propio código de respuesta.

07 de agosto de 2009 | hay 1 comentario

Un comentario to 'HOWTO: AX – Modificar el menu contextual de un objeto'

Suscríbete a los comentarios por RSS o haz TrackBack a 'HOWTO: AX – Modificar el menu contextual de un objeto'.

  1. En qué clase encuentro el Método showContextMenu ??? Por otra parte, cuando ejecuto el PB, si aprieto el botón derecho en cualquier de los campos, se traba todo el AX, crees que ese código me ayude a evitarlo? Gracias!

    Atreju

    11 de junio de 2011

    00:25

Deja tu comentario