tengo un menu.... que hago en una barra de tsbutton...pero en un submenu no lo pinta como desabilitado (obviamente no ejecuta la accion) pero se ve algo....raro....
alguien...sabe..porke...
Saludos
Marco A. Delgado.
Marco,
No es el menu estandard de FWH, si ?
no entiendo tu respuesta Antonio.
me dices que el menu que utilizo pertenece a la clase tsbutton
Saludos
Marco A. Delgado.
gracias.....por tu respuesta Antonio
cheque los ejemplos de fwh y todos funcionan correctamente, seguire probando...
Saludos
Marco A. Delgado.
Marco,
Me refiero a si estás usando los menús de FWH ó estás usando otros de terceros.
Antonio,
Estoy utilizando los de FWH
Saludos
Marco A. Delgado.
Perdon la intromicion, pero sera que me pueden indicar cual es el nombre del ejemplo para revisarlo.
Marco,
Podrias por favor proporcionar un ejemplo pequeño y autocontenido, que use clases estandard de FWH y que reproduzca el problema ? gracias.
#Define COLOR_BTNFACE 15
#Define CLR_NBLUE nRGB( 128, 128, 192)
#Include "FiveWin.ch"
Static oWndPrinc, oOut, oBtn[2]
Static cEmpresa, oFont
***************************
Function Main()
Local oIcon, oCur, oBar, cUsuario
Local oSpl, oUsuario, oBrush, oSay, oEmpresa
DEFAULT cEmpresa := "Transporte Urbano de Poza Rica, S.A. de C.V."
DEFAULT cUsuario := ""
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
SET CENTURY ON
SET DATE BRITISH
SET DELETE ON
SET EPOCH TO 1989
SetHandleCount( 80 )
Set3dLook(.T.)
DEFINE ICON oIcon RESOURCE "A"
DEFINE CURSOR oCur RESOURCE "Hand"
DEFINE BRUSH oBrush RESOURCE "Brush2"
DEFINE FONT oFont NAME "Arial" SIZE 0, -11
DEFINE WINDOW oWndPrinc ;
TITLE "Sistema Administrativo para Transporte de Pasajeros para Windows" ;
COLOR CLR_BLACK, GetSysColor(15)-RGB(30,30,30) ;
MENU CreaMenu() ;
ICON oIcon
oWndPrinc:SetFont( oFont )
DEFINE BUTTONBAR oBar 3DLOOK OF oWndPrinc SIZE 35, 35
oBar:bLClicked := {|| 0 }
oBar:bRClicked := {|| 0 }
DEFINE BUTTON oBtn[1] OF oBar ;
RESOURCE "EXIT","EXIT" ;
ACTION oWndPrinc:End() ;
MESSAGE " Salir del Sistema" ;
TOOLTIP "Salir del Sistema" ;
NOBORDER
DEFINE BUTTON oBtn[2] OF oBar ;
RESOURCE "PRINTER" ;
ACTION MenuPop( oBtn[2] ) ;
FONT oWndPrinc:oFont ;
MESSAGE " Reportes del Sistema" ;
NOBORDER ;
GROUP
SET MESSAGE OF oWndPrinc TO " Prueba " CENTER NOINSET
oWndPrinc:oMsgBar:DateOn()
ACTIVATE WINDOW oWndPrinc ;
VALID (oFont:End(), .T. ) ;
MAXIMIZED
Return Nil
*******************
Function CreaMenu()
Local oMenu
Local lEnable := .F.
MENU oMenu
MenuItem "Primero"
Menu
MenuItem "Acerca1"
Menu
MenuItem "Punto1"
MenuItem "Punto2"
Menu
MenuItem "Parte1"
MenuItem "Parte2"
MenuItem "Parte3" When lEnable
EndMenu
MenuItem "Punto3" When lEnable
EndMenu
MenuItem "Acerca2"
MenuItem "Acerca3" When lEnable
EndMenu
MenuItem "Segundo"
EndMenu
Return(oMenu)
*******************************************
Static Function MenuPop( oBtn )
Local oMenu, aRect
Local tUsuario
Local lEnable := .F.
MENU oMenu POPUP
MenuItem "Informe de &Recaudaciones Diarias"
SEPARATOR
MenuItem "Deducciones a &Operadores" ;
RESOURCE "Oper16"
Menu
MenuItem "&Detallado (Ordenado por Operador)" When lEnable
MenuItem "&Acumulado (Ordenado por Operador)" When lEnable
MenuItem "&Individual"
EndMenu
MenuItem "Informe de &Pensiones a Operadores"
SEPARATOR
MenuItem "&Ingresos"
Menu
MenuItem "Mensual por &Unidad" When lEnable
Menu
MenuItem "&Detallado (Ordenado por Unidad)"
MenuItem "&Acumulado (Ordenado por Ingresos)"
MenuItem "por &Unidad (en Detalle)"
EndMenu
MenuItem "Mensual por &Operador" ;
RESOURCE "Oper16" When lEnable
Menu
MenuItem "&Detallado (Ordenado por Operador)"
MenuItem "&Acumulado (Ordenado por Ingresos)"
MenuItem "&Individual (en Detalle)"
EndMenu
MenuItem "Mensual Por &Empresas" When lEnable
MenuItem "Mensual Por &Bases"
SEPARATOR
MenuItem "Anual por &Unidad"
MenuItem "Anual por &Operador" ;
RESOURCE "Oper16"
Menu
MenuItem "&Global"
MenuItem "&Individual"
EndMenu
MenuItem "Anual por &Empresas" When lEnable
MenuItem "Anual por &Bases"
EndMenu
SEPARATOR
MenuItem "&Generacion de Disco de Entregas" When lEnable
ENDMENU
ACTIVATE POPUP oMenu AT 10 , 0 OF oBtn
Return(Nil)Marco,
Por favor prueba este cambio y dime si ya se ve bien (aunque estará en una posición distinta en la pantalla):
ACTIVATE POPUP oMenu AT 10 , 0 OF oBtn:oWnd:oWnd
ok....funciono Antonio pero....
el menu se mueve demasiado, no queda debajo del botton que es donde lo requiero, tambien hice pruebas con tsbutton y el resultado es el mismo se mueve incluso si pongo otro
Wnd se pasa hasta la ventana principal.
Alguna sugerencia
Saludos
Marco A. Delgado.
case nMsg == WM_INITMENUPOPUP
return ::InitMenuPopup( nWParam, nLoWord( nLParam ), nHiWord( nLParam ) != 0 )ok...gracias...lo checo
solo una pregunta Antonio, como le hago para que el menu (en el ejemplo expuesto) me aparezca debajo del botton (como debe de ser).
Saludos
Marco A. Delgado.
Marco,
Las coordenadas que tú usabas son relativas al botón. Ahora habrÃa que convertirlas en relativas a la ventana. Se harÃa asÃ:
local aPos := { 0, 10 }
aPos = ClientToScreen( oBtn:hWnd, aPos )
aPos = ScreenToClient( oWnd:hWnd, aPos )
y los valores que ahora tiene aPos deberÃan ser los correctos, y relativos a la ventana principal.