Wie man die group-box-text-hintergrund transparent

Ich möchte einen transparenten dialog. Ich capture die OnCtlColor Nachricht in einer von CDialog abgeleitete Klasse...das ist der code:

HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
   if(bSetBkTransparent_)
   {
      pDC->SetBkMode(TRANSPARENT);
      hbr = (HBRUSH)GetStockObject(NULL_BRUSH);        
   }


   return hbr;
}

Es funktioniert gut für alle Steuerelemente, aber die group-box (CStatic). Alle Etiketten (CStatic) sind lackiert mit einem transparenten text, der hintergrund, sondern der text von der Gruppe box ist es nicht transparent.

Ich schon gegoogelt, aber ich didn ' T finden eine Lösung. Weiß jemand, wie man einen echten transparenten Konzern-box?

Übrigens, ich arbeite unter Windows XP. Und ich will auch nicht zu voll ziehen, die Steuern zu vermeiden, ändern Sie den code, wenn die Anwendung nach der Migration auf ein anderes OS.

Dank,

Javier

Anmerkung: ich habe endlich geändert werden, der dialog, so dass ich nicht brauchen, um ihn transparent zu machen. Wie auch immer, ich diese Informationen hinzufügen, da vielleicht noch jemand versuchen, es zu tun. Die groupbox ist nicht ein CStatic aber ein CButton (ich weiß, das ist nicht neu). Ich habe die Windows-XP-theme auf Windows klassisch und dann die groupbox-backgraund war transparent. Das schlechte neue ist, dass in diesem Fall der Rahmen wird sichtbar, unter dem text...wenn also jemand nach diesem Ansatz, den ich denke, vielleicht wäre er/Sie besser Folgen Sie den Adzm Beratung.

  • Ich habe gerade versucht dies in einer sehr schnellen test und die Gruppe im Feld text transparent ist (soweit, dass selbst die Gruppe-Feld ist sichtbar unter dem text). Möglicherweise Ihr problem ist nicht in den obigen code: möchten Sie vielleicht zu versuchen zu tun, eine schnelle minimal-demo-test-Programm.
Schreibe einen Kommentar