La respuesta la tenías en el foro. Este código está escrito por _Leo. Este código hace transparentes las zonas del Form sin controles.
En el evento OnCreate del Form ponemos:
HRGN frmRgn = CreateRectRgn(0, 0, Width,
Height-ClientHeight-GetSystemMetrics(SM_CYSIZEFRAME));
for (int i=0; i<ControlCount; i++)
{
TRect R = Controls[i]->BoundsRect;
OffsetRect((RECT*)&R, ClientOrigin.x - Left, ClientOrigin.y - Top);
HRGN tmpRgn = CreateRectRgnIndirect((RECT*)&R);
CombineRgn(frmRgn, frmRgn, tmpRgn, RGN_OR);
DeleteObject(tmpRgn);
}
SetWindowRgn(Handle, frmRgn, true);
DeleteObject(frmRgn);
---
PD: probado en BCB1 y BCB5
O puede que te valga este. Tambien cortesía de _Leo:
- Este efecto es solo valido en Windows 2000.
- Tal como esta solo funciona en BCB5 ya que este trae las cabeceras actualizadas para Win2000.
En el evento OnCreate del Form ponemos:
int P = 25; // Porcentaje transparencia
SetWindowLong(Handle, GWL_EXSTYLE,
GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, NULL, 255*(100-P)/100, LWA_ALPHA);
---
PD: posiblemente también funciona en Windows Millenium (a ver si alguien puede confirmarlo)
Beno, agur!!!(adios)