Hintergrundbild im Dialog zentrieren
-
Jau, das war richtig. Du solltest dich aber erstmal selber daran versuchen um zu lernen
CBitmap* pOldBitmap = dcMem.SelectObject(m_pBmp); pDC->BitBlt(Formel1, Formel2, bm.bmWidth, bm.bmHeight, &dcMem, 0, 0, SRCCOPY); dcMem.SelectObject(pOldBitmap);
Bei Formel1 und Formel2 muß du eben die Mitten berechnen mit Hilfe des rect's
-
bingo!
Danke jetzt seh' ich's auch!!!! DANKE!!!!
Gibt es einen solchen Parameter zum zentrieren. Der ursprüngliche Entwickler meinte das sein nicht möglich. Gut möglich ist alles... aber wie... Auf alle Fälle Danke! Ich guck mal nach!
-
Natürlich geht das, sogar recht einfach! Ich will dir das hier aber nicht sagen, weil du auch selber denken sollst
-
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