Dar color al menú de nuestra aplicación

1,566 views
Skip to first unread message

Alci

unread,
Jul 14, 2010, 8:37:19 PM7/14/10
to Mundo Visual FoxPro
Felicitaciones a quienes se esmeran en hacer un sistema con interfaz
profesional y elegante.

Mi aporte es la siguiente... Podemos darle formato a nuestros menú del
fox con colores y formatos de texto.

Para formatear los items del menú hacemos lo siguiente:

En el diseñador de menú, en la opción Skip For colocamos :

Skip For: .T. &cFormaTitulo

Tenemos que declarar la variable publica cFormaTitulo con el siguiente
valor:
cFormaTitulo = 'FONT "Courier New", 11 STYLE "B" COLOR
RGB(0,0,255,222,237,234),RGB(0,0,0,194,214,224),RGB(191,242,252,41,109,225)'

Para los subtitulos se puede usar el siguiente formato:

Skip For: .T. &cFormaSubTitulo

Tenemos que declarar la variable publica cFormaSubTitulo con el
siguiente valor:
cFormaSubTitulo= 'FONT "Arial", 10 STYLE "N" COLOR
RGB(192,192,192,237,242,243),RGB(0,0,0,237,242,243),RGB(191,242,252,41,109,225)'

Colorear fondo del menú principal del fox:


declare integer GetMenu in user32 integer hwnd
declare integer CreateSolidBrush in gdi32 integer crColor
declare integer DrawMenuBar in user32 integer hwnd
declare integer SetMenuInfo in user32 integer hmenu, string @mi

**** ****
*menuinfo_styles * menuinfo_styles
mns_nocheck = 0x80000000
mns_nocheck = 0x80000000
mns_modeless = 0x40000000
mns_modeless = 0x40000000
mns_dragdrop = 0x20000000
mns_dragdrop = 0x20000000
mns_autodismiss = 0x10000000
mns_autodismiss = 0x10000000
mns_notifybypos = 0x8000000
mns_notifybypos = 0x8000000
mns_checkorbmp =0x4000000
mns_checkorbmp = 0x4000000

mim_maxheight = 0x1
mim_maxheight = 0x1
mim_background = 0x2
mim_background = 0x2
mim_helpid = 0x4
mim_helpid = 0x4
mim_menudata = 0x8
mim_menudata = 0x8
mim_style = 0x10
mim_style = 0x10
mim_applytosubmenus = 0x80000000
mim_applytosubmenus = 0x80000000
**** ****
*Private Type MENUINFO * Private Type MENUINFO
* cbSize As Long * CbSize As Long
* fMask As Long * FMask As Long
* dwStyle As Long * DwStyle As Long
* cyMax As Long * CyMax As Long
* hbrBack As Long * HbrBack As Long
* dwContextHelpID As Long * DwContextHelpID As Long
* dwMenuData As Long * DwMenuData As Long
*End Type * End Type
uc_hwnd=_vfp.hwnd &&uc_hwnd = _vfp.HWnd
uc_menuh=GetMenu(uc_hwnd) &&uc_menuh = getmenu (uc_hwnd)
*Messagebox(Padl("Thisform.hwnd=",20," ")+Ltrim(Str(getactivewindow()))
+Chr(13)+Padl("_Screen.hwnd=",20," ")+Ltrim(Str(_Screen.HWnd))
+Chr(13)+Padl("_Vfp.hwnd=",20," ")+Ltrim(Str(_vfp.HWnd))
+Chr(13)+Chr(13)+Padl("Thisform.menuh=",20," ")
+Ltrim(Str(getmenu(Thisform.HWnd)))+Chr(13)+Padl("_Screen.menuh=",20,"
")+Ltrim(Str(getmenu(_Screen.HWnd)))+Chr(13)+Padl("_Vfp.menuh=",20," ")
+Ltrim(Str(uc_menuh))) * Messagebox (Padl ( "Thisform.hwnd =", 20, "")
+ Ltrim (Str (getactivewindow ()))+ Chr (13) + Padl ( "_Screen.hwnd
=", 20, "") + Ltrim ( Str (_Screen.HWnd)) + Chr (13) + Padl
( "_Vfp.hwnd =", 20, "") + Ltrim (Str (_vfp.HWnd)) + Chr (13) + Chr
(13) + Padl ( "Thisform.menuh =", 20, "") + Ltrim (Str (getmenu
(Thisform.HWnd))) + Chr (13) + Padl ( "_Screen.menuh =", 20, "") +
Ltrim (Str ( getmenu (_Screen.HWnd))) + Chr (13) + Padl ( "_Vfp.menuh
=", 20, "") + Ltrim (Str (uc_menuh)))
uc_fmask=mim_background &&+mim_applytosubmenus uc_fmask =
mim_background & & + mim_applytosubmenus
uc_dwstyle=mns_nocheck
uc_cymax=0
uc_hbrback=CreateSolidBrush(rgb(237,250,232)) &&-????????? uc_hbrback
= createsolidbrush (Rgb (255,0,0)) & & - the act of setting the
background color
uc_dwcontexthelpid=0
uc_dwmenudata=0
uc_len = 28
menuinfo = num2dword (uc_len) + num2dword (uc_fmask) + num2dword
(uc_dwstyle) + num2dword (uc_cymax) + num2dword (uc_hbrback) +
num2dword (uc_dwcontexthelpid) + num2dword (uc_dwmenudata)

=SetMenuInfo(uc_menuh,@menuinfo)
=DrawMenuBar(uc_hwnd)

function num2dword(lnvalue)
#define m0 0x0000100 &&# Define m0 0x0000100
#define m1 0x0010000 &&# Define m1 0x0010000
#define m2 0x1000000 &&# Define m2 0x1000000
if lnvalue < 0 &&If lnvalue <0
lnvalue = 0x100000000 + lnvalue &&€lnvalue = 0x100000000 + lnvalue
endif endif
local b0, b1, b2, b3
b3 = int(lnvalue/m2)
b2 = int((lnvalue - b3*m2)/m1)
b1 = int((lnvalue - b3*m2 - b2*m1)/m0)
b0 = mod(lnvalue, m0)
return chr(b0)+chr(b1)+chr(b2)+chr(b3)


Saludos,

Alcides Portillo
www.ServiSoftPy.com

PD: Los códigos lo encontré en algún sitio que ya no recuerdo.

Intel Man

unread,
Jul 14, 2010, 11:39:30 PM7/14/10
to mundovis...@googlegroups.com
Muchas gracias por este tip, esta muy interesante :)

Saludos


> Date: Wed, 14 Jul 2010 17:37:19 -0700
> Subject: [Mundo Visual FoxPro] Dar color al menú de nuestra aplicación
> From: alcides...@gmail.com
> To: mundovis...@googlegroups.com
> --
> _______________________________________________________________
> Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
> FoxPro" de Grupos de Google.
>
> Para anular la suscripción a este grupo, envía un mensaje a:
> mundovisualfox...@googlegroups.com


¿Quieres unirte a la fuerza de Internet Explorer 8? ¡Es gratis!

Mari

unread,
Jul 15, 2010, 12:18:17 PM7/15/10
to Mundo Visual FoxPro
Hola amigo buen tip seria bueno que subas un ejemplo gracias

On 14 jul, 22:39, Intel Man <intel_man_in...@hotmail.com> wrote:
> Muchas gracias por este tip, esta muy interesante :)
>
> Saludos
>
>
>
> > Date: Wed, 14 Jul 2010 17:37:19 -0700
> > Subject: [Mundo Visual FoxPro] Dar color al menú de nuestra aplicación
> > From: alcidesporti...@gmail.com
> _________________________________________________________________
> Prepárate para la multitud de novedades que Hotmail tiene para tihttp://explore.live.com/windows-live-hotmail

Cristobal Galvan

unread,
Jul 15, 2010, 12:45:58 PM7/15/10
to mundovis...@googlegroups.com
Si de verdad quieren hacer menus buenos... usen CodeJock... les anexo una muestra...
 


Cristobal E. Galvan Nicasio



Hotmail prepara novedades y sorpresas en breve, ¡estate atento!
SescoSoft.JPG

Ruben Antunes

unread,
Jul 15, 2010, 1:28:28 PM7/15/10
to mundovis...@googlegroups.com
Cristobal: donde puedo bajar ejemplo de CodeJock con VFP9, porque la verdad que me puse a buscar y no encuentro nada.... Si tienes un ejemplo seria bueno lo envies gracias.
Ruben
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5148 (20100526) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5148 (20100526) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

Cristobal Galvan

unread,
Jul 15, 2010, 1:32:00 PM7/15/10
to mundovis...@googlegroups.com
Mira.. es un poco largo el asunto:
 
1.- Genera el "MENU" con COMMAND BAR DESIGNER (es de objetos, nada de programacion)
2.- Desde FOX, agregar los OCX
3.- Leer el archivo del COMMAND BAR (xcb)
 
Dejame buscar en los tiliches si encuentro el PDF que hice para este menester.

 


Cristobal E. Galvan Nicasio


 

From: rubena...@gmail.com
To: mundovis...@googlegroups.com
Subject: Re: [Mundo Visual FoxPro] Re: Dar color al menú de nuestra aplicación
Date: Thu, 15 Jul 2010 14:28:28 -0300

Cristobal Galvan

unread,
Jul 15, 2010, 1:33:06 PM7/15/10
to mundovis...@googlegroups.com
Se me paso comentar... ejemplos como tal no hay para VFP.. por que segun la pagina de CodeJock... es para VISUAL BASIC.
 
Pero como hay un modelo ACTIVEX... FOX lo lee a la perfeccion.


Cristobal E. Galvan Nicasio


 

From: rubena...@gmail.com
To: mundovis...@googlegroups.com
Subject: Re: [Mundo Visual FoxPro] Re: Dar color al menú de nuestra aplicación
Date: Thu, 15 Jul 2010 14:28:28 -0300

Miguel Canchas

unread,
Jul 15, 2010, 2:57:37 PM7/15/10
to mundovis...@googlegroups.com

Que tal colegas ?

Tengo un pequeño problema cuando grabo desde excel.

 

Hojacalculo =

CreateObject("excel.application")

XLApp = HojaCalculo

xlapp.Workbooks.Open("C:\reclamos pagadas-international - 10.07.13.xls") && abro el archivo

xlapp.ActiveWorkbook.SaveAs("c:\palm\reclamos pagadas-international - 10.07.13.xls", 43) && lo guardo en otro lugar con otro formato para que lo pueda leer FOX y es aqui donde me marca el error.

xlapp.Quit

 

Gracias

 

Ruben Antunes

unread,
Jul 15, 2010, 5:54:17 PM7/15/10
to mundovis...@googlegroups.com
Gracias... entonces espero me envies el PDF para leerlo... te agradezco.

Mario Alfredo Oviedo

unread,
Jul 15, 2010, 6:58:55 PM7/15/10
to Mundo Visual FoxPro
miguel crea una pregunta solo para esa consulta

Mario Alfredo Oviedo

unread,
Jul 15, 2010, 7:00:05 PM7/15/10
to Mundo Visual FoxPro
cristobal perdona, pero si colocas un menu la logica debe indicar
coloca las fuentes, si no para que vemos un carro munstang ultimo
modelo si no me puede ni tocar, mucho menos manejar

Cristobal Galvan

unread,
Jul 16, 2010, 12:04:10 PM7/16/10
to mundovis...@googlegroups.com
En realidad el CodeJock es toda una SUITE como de 30 elementos:
 
Menus
Dock Bars
Report Control
Property Grid
Alerts
TreeView
Markup
y un buen de etc..
 
 
Espero pronto encontrar el manual que hice en PDF para subirlo.


Cristobal E. Galvan Nicasio



Hitiel Hernandez B.

unread,
Jul 17, 2010, 12:47:22 AM7/17/10
to Mundo Visual Fox
Dónde puedo econtrar o conseguir CODEJock.. SERías tan amable de indicármelo
Gracias!


From: galvan_c...@hotmail.com
To: mundovis...@googlegroups.com
Subject: RE: [Mundo Visual FoxPro] Re: Dar color al menú de nuestra aplicación
Date: Thu, 15 Jul 2010 16:45:58 +0000
--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com


Explore the seven wonders of the world Learn more!
Reply all
Reply to author
Forward
0 new messages