Problem mit transparenten Radio-Button bei aktiviertem Windows XP-Design

gabifi

Mitglied
In einem Dialog zeiche ich in der OnPaint() ein Bild in den Hintergrund. Damit die Elemente im Vordergrund transparent erscheinen, gehe ich wie folgt vor:

1) Transparenten Brush erzeugen
2) Diesen in der OnCtlColor() zurückgeben, falls das entsprechnde Element gezeichnet werden soll

Code:
m_brHollow.CreateStockObject(HOLLOW_BRUSH);
   
   HBRUSH CWizard_1::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
   {
   	HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
   
   	if (pWnd->GetDlgCtrlID() == IDC_RADIO_NEU ||
   		pWnd->GetDlgCtrlID() == IDC_RADIO_ALT ||
   		pWnd->GetDlgCtrlID() == IDC_WIZ_1_STATIC_1 )
      {
   	  
   	  pDC->SetBkMode(TRANSPARENT);
   	  return m_brHollow;
      }
   	return hbr;
   }
Ist kein Design aktiviert, funktioniert alles ohne Probleme. Bei aktiviertem Design wird nur statischer text transparent dargestellt, Radio-Buttons aben aber nen grauen Kasten um sich.
Meine Frage wär jetzt einfach: Warum? Ich verstehs net.
Danke für Hilfe und Tips.
Gabriel
 
Hallo, gibt es heir schon eine Lösung?

habe dasselber Problem mit dem andersfarbigen Kästchen um den Button.
Habe nen Gruppenfeld mit eigenem Hintergund und möchte nun den Radiobutton darauf transparent habe.
Kann man vll. irgendiwe das Objekt (in meinem Fall das Gruppenfeld) welches sich hinter dem Button befindet nehmen, da die fareb auslesen und dann auf den Button legen? Wenn ich nämlich ne Farbe vorgebe, dann funktioniert es auch mit dem Kästchen um den Kreis *g* :)
 
Zurück