Hintergrundbild im Dialog zentrieren
-
Danke, für alles!!!
-
also ich hab das nun so reingetippt,a ber nun stürtz mir mein fenster ab, bzw zuvor bleibt es noch tranparent. Hab ich was falsch gemacht Breite und Länge holen, erechnen. Sollte doch gehen oder?
/*CBitmap* pOldBitmap = dcMem.SelectObject(m_pBmp); for (register int nX = 0; nX < rect.Width(); nX += bm.bmWidth) for (register int nY = 0; nY < rect.Height(); nY += bm.bmHeight) pDC->BitBlt(nX, nY, bm.bmWidth, bm.bmHeight, &dcMem, 0, 0, SRCCOPY); dcMem.SelectObject(pOldBitmap); */ CBitmap* pOldBitmap = dcMem.SelectObject(m_pBmp); pDC->BitBlt(0.5*rect.Width(),0.5*rect.Height(), bm.bmWidth, bm.bmHeight, &dcMem, 0, 0, SRCCOPY); dcMem.SelectObject(pOldBitmap);
-
Die Formel ist noch nicht vollständig, du muss noch die Höhe und Breite des Bildes beachten. Aber abstürtzen dürfte es trotzdem nicht.
-
Achso, es stürzt wahrscheinlich nicht ab, bestimmt ist nur alles verschommen oder? Wenn das so ist, dann setze mit SetBackColor eine Hintergrundfarbe.
-
es bleibt transparent, ausser der Toobar und dem Main Menug seh ich durch.
Aber selbst wenn es falsch positioniert ist, sollte ich doch was sehen, oder?!
-
SetBackColor
-
ja das ist mit SetBackColor funktioniert schon, aber warum seh ich nichteinmal ansatzweiese bitmap? Das verstehe ich nicht ganz.
-
Siehst du so was?
pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &dcMem, 0, 0, SRCCOPY);
-
Achso, hab schon gerafft. Es ist so programmiert das entweder die Hintergrundfarbe ODER das Bitmap gezeichnet wird.
Das
pDC->FillSolidRect(&rect, m_nBackColor);
muss noch vor das Bitmap BitBlt
-
Und diese Abfrage rausnehmen:
if (m_nBackColor != CLR_INVALID)
pDC->FillSolidRect(&rect, m_nBackColor);
else
-
Hab das ganze gelöst, der Fehler war ganz wo anders, nämlich dort am Anfang, die Routine ist ganz io! Vielen Dank an Euch alle.
Tja und der Urspürngliche entwickler meinte aufgrund von Windwos sei das zentrieren es Bildes unmgölich... hehehe dabei war es nur eine Formeln!
VIELEN DANK!!!!
Sieht nun wunderschön aus. Ist auch idiotisch das CI 8 Mal zu wiederholen! grins