?
Martin Richter schrieb:
Ich Frage mal meine Glaskugel:
1. Du hast WM_CTLCOLOR überschrieben?
2. Du setzt die Backgroundcolor auf Transparent?
Genau, ich hab WM_CTLCOLOR überschrieben, damit meine TextControls transparent angezeigt werden. Ich habe nämlich ein Hintergrundbild geladen (auch in WM_CTLCOLOR) und die Texte wurden mit mit grauen Hintergrund angezeigt.
/// im Header
HBRUSH m_hbrushBackground;
HBITMAP hbmpBackground;
//// In Oninit
hbmpBackground = (HBITMAP)LoadImage(NULL,"blue.jpg",
IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION|LR_DEFAULTSIZE);
m_hbrushBackground = CreatePatternBrush( hbmpBackground );
HBRUSH CUrlaubDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if( nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC )
hbr = m_hbrushBackground;
if( nCtlColor == CTLCOLOR_STATIC )
pDC->SetBkMode(TRANSPARENT);
return hbr;
}
// Im Dekonstruktor
CUrlaubDlg::~CUrlaubDlg()
{
/// Objekt wieder löschen
DeleteObject(m_hbrushBackground);
}