Windows Vista y FWH y FWH64

Post Reply
User avatar
RodolfoRBG
Posts: 253
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico
Contact:

Windows Vista y FWH y FWH64

Post by RodolfoRBG »

Hola Foro!

Como el "evento taurino" por el cambio de _ también me tocó a mi ("La gran corrida"), ahora que soy desempleado, o mejor dicho, autoempleado, me verán dando lata por aqui mas seguido.

Ya veo anunciado por todos lados el tan esperado Windows Vista y no puedo dejar de preguntar si será compatible con nuestro querido FWH o si pasará lo mismo que FW de 16 bits al intentarlo trabajar con Windows de 32 bits, que marcaba errores de falta de memoria.

Suponiendo que sea compatible, entonces cual sería la ventaja de usar FWH64?

Notese que estoy muy desligado de esto del Hardware/Software actual, asi es que a lo mejor mis preguntas resultan un tanto tontas, pero no se hagan, más de uno de ustedes no se atrevía a preguntar.

'chos salu2 (y pronto cambiaré la foto de mi último proyecto (mi hijo) por la mía, nada mas que sanen mis heridas al quitarme la papada y las arrugas... jajaja, para nada!)
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rodolfo,

Vista existe en versiones de 32 bits y de 64 bits. Igual que XP hasta ahora.

FWH 32 bits es totalmente compatible con Vista (32 y 64 bits). FWH64 es para usarlo sólo en versiones de 64 bits, bien sea Vista 64 ó XP 64.

Las aplicaciones de 64 bits no funcionan en ordenadores de 32 bits. Pero las aplicaciones de 32 bits si funcionan en 32 y en 64.

Además las aplicaciones de 16 bits no funcionan en XP ó Vista de 64 bits
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Antonio:
La última versión de FWH ¿admite ya hacer diálogos transparentes (o sea, con brush Null) en Vista? Recuerda que ésa era una incompatibilidad detectada hace un par de semanas.
Saludos
Rafael
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rafael,

De momento no, aún no hemos localizado lo que ha podido cambiar en Vista respecto al uso de brushes null
regards, saludos

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

Post by Antonio Linares »

Rafael,

En Vista hay que usar el estilo WS_EX_TRANSPARENT en vez de usar el brush NULL
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Muchísimas gracias, Antonio. Lo probaré en cuanto pueda.
Saludos,

Rafael
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Antonio:

Defino el estilo de la ventana como :

nStyle := WS_POPUP+WS_THICKFRAME+WS_EX_TRANSPARENT pero al

compilar me da Ambiguous reference: 'WS_EX_TRANSPARENT'

¿Por favor, qué valor tiene esa constante? (Utilizo FWH 2.6)

Gracias,
Rafael
[/code]
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rafael,

#define WS_EX_TRANSPARENT 32 // 0x00000020L
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Antonio:
Esta solución es específica para Vista? Porque de momento lo he probado en Xp y no funciona (el diálogo aparece opaco en gris). Más tarde lo intentaré en Vista y te diré algo.
Gracias
Rafael
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Fernando:

Tengo una aplicación que coloca un diálogo transparente sobre una ventana de otra aplicación. Es transparente -claro- para poder ver lo que hay en la ventana original y poder pintar cosas sobre ella. Luego, al cerrar el diálogo, lo que haya modificado desaparece y todo queda como estaba.

Con Xp utilizaba un diálogo con brush NULL y todo iba perfecto. Pero en Vista-Aero, la misma aplicación me crea un diálogo opaco, con fondo gris que no me deja ver qué hay debajo. En este momento no tengo Vista a mano pero sí he probado lo que sugiere Antonio en mi Xp de siempre. Y
nStyle := WS_EX_TRANSPARENT (sin brush) no parece que funcione sobre Xp, o sea. me genera un diálogo opaco, no trasparente. Esta tarde lo probaré con Vista.

Si quieres probarlo tú, este es el código que SI funciona en Xp y NO funciona en Vista:

Code: Select all

#include "Fivewin.ch"

Function Main()
Local oWnd, oBrush
DEFINE BRUSH oBrush STYLE "BORLAND"
Define Window oWnd from 0,0 TO 100,200 Pixel Brush oBrush
Activate Window oWnd On Init Superponer()
Return Nil

Static Function Superponer()
Local oDlg, oBrush
DEFINE BRUSH oBrush STYLE "NULL"
Define Dialog oDlg from 0,0 TO 100,100 Pixel Brush oBrush
Activate Dialog oDlg
Return Nil
Saludos,
Rafael
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rafael,

Lo hemos probado así en Vista:

Code: Select all

#define GWL_EXSTYLE      -20

Define Dialog oDlg from 0,0 TO 100,100 PIXEL
Activate Dialog oDlg ;
   ON INIT SetWindowLong( oDlg:hWnd, GWL_EXSTYLE,  WS_EX_TRANSPARENT )
pero sigue sin funcionar.
Last edited by Antonio Linares on Wed Feb 07, 2007 9:30 am, edited 1 time in total.
regards, saludos

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

Post by Antonio Linares »

Rafael,

Así parece que funciona bien :-)

Code: Select all

#define WS_EX_LAYERED 0x80000

Define Dialog oDlg from 0,0 TO 100,100 PIXEL
Activate Dialog oDlg ;
   ON INIT SetWindowLong( oDlg:hWnd, GWL_EXSTYLE, nOr( GetWindowLong( oDlg:hWnd, GWL_EXSTYLE ), WS_EX_LAYERED ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Antonio:
Hasta esta tarde no podré probarlo en Vista. Sin embargo, he probado esto en Xp y no parece funcionar.

Code: Select all

#include "Fivewin.ch"
#define WS_EX_LAYERED 0x80000
#define GWL_EXSTYLE      -20

Function Main()
Local oWnd, oBrush
DEFINE BRUSH oBrush STYLE "BORLAND"
Define Window oWnd from 0,0 TO 100,200 Pixel Brush oBrush
Activate Window oWnd On Init Superponer()
Return Nil

Static Function Superponer()
Local oDlg, oBrush
//DEFINE BRUSH oBrush STYLE "NULL"
Define Dialog oDlg from 50,50 TO 100,100 Pixel   // Brush oBrush
Activate Dialog oDlg ON INIT (SetWindowLong( oDlg:hWnd, GWL_EXSTYLE, nOr( GetWindowLong( oDlg:hWnd, GWL_EXSTYLE ), WS_EX_LAYERED ) )
Return Nil
Si funciona en Vista ¿quiere esto decir que habrá que programarlo de forma distinta para correr en un sistema operativo o en otro? ¿Habría manera de unificarlo para que funcione igual en los dos?

Gracias

Rafael
Post Reply