Page 1 of 2
Menu.... ha habilitado....
Posted: Mon Jan 16, 2006 6:49 pm
by Marco A. Delgado
Hola...
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.
[img]
[img]http://img17.imageshack.us/img17/8913/menus7ob.jpg[/img][/img]
Posted: Mon Jan 16, 2006 6:56 pm
by Antonio Linares
Marco,
No es el menu estandard de FWH, si ?
Posted: Mon Jan 16, 2006 9:30 pm
by Marco A. Delgado
no entiendo tu respuesta Antonio.
me dices que el menu que utilizo pertenece a la clase tsbutton
Saludos
Marco A. Delgado.
Posted: Mon Jan 16, 2006 11:14 pm
by Marco A. Delgado
gracias.....por tu respuesta Antonio
cheque los ejemplos de fwh y todos funcionan correctamente, seguire probando...
Saludos
Marco A. Delgado.
Posted: Tue Jan 17, 2006 4:16 am
by Antonio Linares
Marco,
Me refiero a si estás usando los menús de FWH ó estás usando otros de terceros.
Posted: Tue Jan 17, 2006 2:29 pm
by Marco A. Delgado
Antonio,
Estoy utilizando los de FWH
Saludos
Marco A. Delgado.
Posted: Tue Jan 17, 2006 2:40 pm
by leandro
Perdon la intromicion, pero sera que me pueden indicar cual es el nombre del ejemplo para revisarlo.
Posted: Tue Jan 17, 2006 7:15 pm
by Antonio Linares
Marco,
Podrias por favor proporcionar un ejemplo pequeño y autocontenido, que use clases estandard de FWH y que reproduzca el problema ? gracias.
Posted: Wed Jan 18, 2006 3:47 am
by Marco A. Delgado
este es lo que he probado..
Code: Select all
#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)
y sigo con el mismo problema, en los menus normales de una ventana no hay problema, pero dependiendo de una barra de herramientas el resultado es esto.
Prueba en ventana principal:
[img]
[img]http://img371.imageshack.us/img371/2724/menua7mb.jpg[/img][/img]
Prueba en una barra de la ventana principal
[img]
[img]http://img371.imageshack.us/img371/7351/menub4ab.jpg[/img][/img]
[img]
[img]http://img371.imageshack.us/img371/1791/menuc9nu.jpg[/img][/img]
Antonio espero y esto te guie, gracias...
Saludos
Marco A. Delgado.
Posted: Wed Jan 18, 2006 8:32 am
by Antonio Linares
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
Posted: Wed Jan 18, 2006 2:47 pm
by Marco A. Delgado
Funciono..
Muchas Gracias.... pero a que se debe (claro si se puede saber)
[img]
[img]http://img371.imageshack.us/img371/4941/menud6yv.jpg[/img][/img]
[img]
[img]http://img371.imageshack.us/img371/3176/menue7kz.jpg[/img][/img]
Pero sigue sin funcionar con tsbutton
Saludos
Marco A. Delgado.
Posted: Wed Jan 18, 2006 4:25 pm
by Marco A. Delgado
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 :oWnd se pasa hasta la ventana principal.
Alguna sugerencia
Saludos
Marco A. Delgado.
Posted: Wed Jan 18, 2006 8:10 pm
by Antonio Linares
Marco,
El problema se debe a que ese control no está procesando correctamente el mensaje WM_INITMENUPOPUP.
Puedes solucionarlo añadiendo estas líneas al Método HandleEvent() de ese control:
Code: Select all
case nMsg == WM_INITMENUPOPUP
return ::InitMenuPopup( nWParam, nLoWord( nLParam ), nHiWord( nLParam ) != 0 )
Posted: Wed Jan 18, 2006 9:43 pm
by Marco A. Delgado
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.
Posted: Thu Jan 19, 2006 2:31 am
by Antonio Linares
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.