Hintergrundfarbe CStatic
-
Wie kann ich einem CStatic-Objekt die Hintergrundfarbe des Windows zuweisen.
In diese Box werden zum Anzeigen von Digital Photos die JPG's dynamisch geladen.
Da das Grössenverhältnis der Bilder nicht den Maßen der Box entspricht
(Bilder sind entweder im Hoch- oder im Querformat) möchte ich den Rest der Box
gleich der Hintergrundfarbe des Windows setzen. Leider wird der Rest der Box mit schwarz gefüllt. Ich könnte auch die Farbe mit exakten RGB-Werten setzen
(siehe auskommentiertes), ist aber schlecht, da der spätere Anwender vielleicht andere Systemeinstellungen konfiguriert hat.
Was mache ich falsch?BOOL CExifRenDlg::DrawPicture(HDC hdc) {
if(pPicture) //wenn bild geladen {
RECT rc;
this->m_PICTUREBOX.GetClientRect(&rc);
CBrush brush;
//COLORREF colref = GetBkColor((HDC)GetDC());
HDC myhdc = (HDC)this->m_PICTUREBOX.GetDC();
COLORREF colref = GetBkColor(myhdc);//brush.CreateSolidBrush(RGB(236,233,216));
brush.CreateSolidBrush(colref);
//SetBkColor(hdc, colref);
int ifr = FillRect(hdc,&rc,(HBRUSH)brush.m_hObject);//Bild anzeigen mittels Render
pPicture->Render(hdc, 0, 0, iWidth, iHeight, 0, lHeight, lWidth, - lHeight, &rc);
return TRUE;
}
return FALSE;
}