Page 1 of 1

Menu pop-up junto al Raton al hacer bRClicked

Posted: Sun Feb 24, 2008 9:04 pm
by Loren
Compañeros:

En un SBUTTON, deseo crear un menu pop-up pulsando el button Derecho del ratón. El código es sencillo y se puede hacer... el problema es que el menú que me genera no aparece junto a la posición del ratón sino en la esquina superior izquierda de la pantalla.

El codigo es el siguiente:

Define Dialog....
redefine sbutton aforo[1] ....
aforo[1]:bRClicked:={ |nRow, nCol, nFlags | dblmenu( nRow, nCol ) }
Activate Dialog.....

funct dblmenu( nRow, nCol)
Local oMenu
C5MENU oMenu POPUP
c5menuitem 'prueba'
C5ENDMENU
ACTIVATE C5MENU oMenu AT nRow, nCol OF oDialog
Return
-------------------------
En otra aplicación lo tengo dentro de un Windows (y me funciona) y en este caso es dentro de un Dialog. ¿Será por eso? ¿Qué solución tiene?
Mil gracias.
LORENZO

Posted: Tue Feb 26, 2008 6:48 pm
by ADBLANCO
Espero que te sirva:

//------------------------------------------------
// Menu POPUP para el clic derecho del mouse sobre
// la ventana principal
STATIC PROCEDURE PopMenu( oWnd )
LOCAL oMenu ,;
aCursor :=GetCursorPos()

MENU oMenu POPUP
MENUITEM 'Opción 1';
RESOURCE 'Bmp16_Candado';
ACTION MsgCalc()
MENUITEM 'Opción 2';
RESOURCE 'Bmp16_Save';
ACTION MsgInfo( 'Accion 2', ' Menu PopUp...' )
SEPARATOR
MENUITEM 'Opción 3';
RESOURCE 'Bmp16_Monedas';
ACTION MsgInfo( 'Accion 3', ' Menu PopUp...' )
ENDMENU
// Aca se compensa la altura del apuntador... la idea es que el Menu se abra
// coincidiendo con la punta de la flecha
aCursor[ 1 ] :=aCursor[ 1 ]-46
ACTIVATE POPUP oMenu OF oWnd;
AT aCursor[ 1 ], aCursor[ 2 ]

RETURN