Tamaño y Coordenadas de msgbar

Post Reply
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Tamaño y Coordenadas de msgbar

Post by cuatecatl82 »

Saludos de nuevos a todo los colegas del foro y de nuevo para molestarlos :? :

:) Resulta que estoy usando en mi sistema la clase TAssist de Juan Carlos Salinas Ojeda, la cual muestra un asistente animado estilo Office.

Dicho asistente lo muestro en la parte inferior derecha de la pantalla, justo arriba de la barra donde se muestra la hora y la fecha de fivewin o más bien conocida como MsgBar.

La pregunta es: ¿Cómo puedo saber las coordenadas para la altura y el largo de la barra de tal manera que no quede ni arriba ni abajo? ya que cuando se cambian los temas de XP o se oculta la barra de inicio de Windows, la barra Msgbar tiende a quedar siempre en el fondo de la pantalla.

Les dejo la imagen para que se den una idea:
http://img520.imageshack.us/my.php?image=dibujo1vq8.jpg

En la Clase TAssist.prg modifique la linea donde activa el asistente, de tal forma que le asigno la ubicación en donde se va a mostrar:

ACTIVATE DIALOG ::oDlg NOWAIT ON INIT (SetWindowPos( ::hWnd,-1,0,0,0,0,3), ::Move(635,945))

Les agradesco de antemano sus respuestas.. :wink:
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

oMsgBar:nWidth()
oMsgBar:nHeight()

ó

oWnd:oBottom:nWidth()
oWnd:oBottom:nHeight()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Post by cuatecatl82 »

Estimado Maestro Antonio Linares:

Le Comento que agrege uno a uno los códigos y este fue el resultado

msginfo(oWndMain:oMsgBar:nWidth())
msginfo(oWndMain:oMsgBar:nHeight())

Lo que se indica con estos mensajes es el tamaño en pixeles de alto y largo de la barra, auque no estoy seguro ya que de alto si son 24 pixeles, pero de largo no son 540 que es lo qie indica, sino 1024.

Lo que necesito saber es a que altura o coordenada del escritorio esta la altura de la barra.

Saludos...
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

>
Lo que necesito saber es a que altura o coordenada del escritorio esta la altura de la barra.
>

MsgInfo( GetSysMetrics( 1 ) - oWnd:oMsgBar:nHeight() )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Post by cuatecatl82 »

Maestro Antonio Linares:

Le comento que estuve haciendo pruebas con los ejemplos que me dio, pero sigue sin funcionar, pero usted me dio una idea de como solucionarlo lo que hize fue lo siguiente:

LOCAL nColumna:= 950
LOCAL nAltura:= 78 (Altura del Dialogo en Pixeles)
LOCAL nLinea:= GetSysMetrics(17) - nAltura
...
Activate Dialog oDlg on init oDlg:Move(nLinea, nColumna)

Funciona, pero el algunas ocaciones lo pociciona unos pixeles arriba o abajo, de todas maneras con esta base ya puedo empezar a buscar como resolverlo, lo unico que no entiendo y no se si sea lo correcto es si es posible saber la altura de la barra de mensajes lo hago así:

msginfo(oWndMain:oMsgBar:nHeight())
msginfo(oWndMain:oMsgBar:Height)

ya que siempre me da 24, aunque visualmente el tamaño cambia.

Saludos y nuevamente gracias..
Post Reply