Gracias amigo, los código del radiogroup y del listbox no me surten ningún efecto.
He estado probando los componentes de TMS que entre todo lo que trae vienen esos componentes con transparencia pero van de pena y tan lento que se puede ver cómo aplica la transparencia. Lo que tú estás haciendo es infinitamente más eficiente.
Si pudieras revisar esos dos componentes te estaría muy agradecido.
Ya luego me tocaría empollar y ver cómo pasarlos a componentes.
Encontré este código para un radiogroup por si es de utilidad:
Código PHP:
private: // User declarations
void __fastcall NewGBWndProc( TMessage& );
TWndMethod OldGBWndProc;
//-------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
RadioGroup1->Brush->Style = bsClear;
long exstyle = GetWindowLong( GroupBox1->Handle, GWL_EXSTYLE );
::SetWindowLong( GroupBox1->Handle, GWL_EXSTYLE, exstyle | WS_EX_TRANSPARENT );
OldGBWndProc = GroupBox1->WindowProc;
GroupBox1->WindowProc = NewGBWndProc;
}
//-------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
GroupBox1->WindowProc = OldGBWndProc;
}
//-------------------------------------------------------------
void __fastcall TForm1::NewGBWndProc( TMessage &Message )
{
if( Message.Msg == WM_CTLCOLORSTATIC )
{
HWND hWnd = reinterpret_cast<HWND>( Message.LParam );
if( hWnd == RadioButton1->Handle || hWnd == RadioButton2->Handle )
{
HDC hDC = reinterpret_cast<HDC>( Message.WParam );
SetBkMode( hDC, TRANSPARENT );
Message.Result = reinterpret_cast<LONG>( GetStockObject(NULL_BRUSH) );
return;
}
}
OldGBWndProc( Message );
}
//-------------------------------------------------------------