Transparencias

02/01/2004 - 13:55 por Sergio | Informe spam
1.Como se usan las transparencias en visual c?
2.Por lo que tengo entendido solo se pueden usar bajo XP, pero me imagino
que si hago un programa que use transparencias solo veré los resultados bajo
XP, pero no me influira en nada mas, quiero decir, que podré compilarlo bajo
cualquier sistema operativo(en mi caso win2000), y usarlo bajo cualquier
plataforma, con el añadido de que si lo uso bajo xp podré ver las
transparencias.

Gracias.

Preguntas similare

Leer las respuestas

#1 ViKT0RY
02/01/2004 - 15:17 | Informe spam
"Sergio" escribió en el mensaje
news:OLJjl%
1.Como se usan las transparencias en visual c?
2.Por lo que tengo entendido solo se pueden usar bajo XP, pero me imagino
que si hago un programa que use transparencias solo veré los resultados


bajo
XP, pero no me influira en nada mas, quiero decir, que podré compilarlo


bajo
cualquier sistema operativo(en mi caso win2000), y usarlo bajo cualquier
plataforma, con el añadido de que si lo uso bajo xp podré ver las
transparencias.




Hay una API que pone una ventana transparente, era SetLayeredWindow o algo
así.
Si intentas utilizar ese API en un Windows que no sea el 2000 o el XP te
dirá que no se ha encontrado el punto de entrada y el programa no se
ejecutará, antes de llamar a esa funcion haz un GetVersion y comprueba que
sea un 2000 o XP.

Gracias.


Respuesta Responder a este mensaje
#2 Sergio
02/01/2004 - 16:30 | Informe spam
La función es SetLayeredWindowAttributes, pero no consigo que me compile. El
error que me da es el siguiente:
error C3861: 'SetLayeredWindowAttributes': no se encontró el identificador,
ni siquiera con búsqueda dependiente de argumentos
Me imagino que el problema vendrá porque me falta incluir alguna cabecera, o
linkar alguna libreria, pero no encuentro nada en la ayuda.
He incluido Windows.h, Wingdi.h, WinUser.h, y he linkado user32.lib, que son
las únicas referencias que he encontrado en la ayuda, pero me imagino que
eso ya lo hace el studio.
Tambien me daba problemas con WM_EX_LAYERED y LWA_ALPHA, no los reconocia,
pero el tooltip de cada una de ellas me daba sus valores.
Respuesta Responder a este mensaje
#4 Sergio
02/01/2004 - 18:02 | Informe spam
Gracias.

No se si has mirado el codigo de los ejemplos, pero en ellos tratan todo el
rato con dialogos, sabes si se puede aplicar solo a CStatic? Me interesa
hacer transparente solo el fondo del CStatic. Lo tengo preparado para que se
mueva por un formulario con varias imagenes y me interesa que el fondo sea
transparente.
Respuesta Responder a este mensaje
#5 Sergio
02/01/2004 - 18:33 | Informe spam
Vale yo tb soy de lo que no hay, más facil no podia ser hacer un CStatic
transparente:

void CMyStatic::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
COLORREF clrTextOld = dc.GetTextColor();
CRect crctRect(lpDrawItemStruct->rcItem);
CString cstrTexto;
GetWindowText(cstrTexto);
dc.SetBkMode(TRANSPARENT); //Aquí estaba la clave
dc.SetTextColor(clrTextOld);
dc.TextOut(crctRect.left+2,crctRect.top+2,cstrTexto);
dc.Detach();
}

Gracias por todo, y espero que a nadie le pase lo mismo que a mi
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida