A
Hat sich erledigt. Wo kein Fehler ist kann auch keiner gefunden werden.
Habe vor lauter Fehlersuche im Code CAstraImageView::OnDrawOnBitmap() den Gesammtüberblick über meinen Programmcode verloren.
// diese Zeile ist die Lösung am Ende der Methode
m_ImageSize = CSize(bm.bmWidth, bm.bmHeight);
So passt es.
void CAstraImageView::OnDrawOnBitmap()
{
CImage img;
img.Load(L"C:\\Users\\franz\\MyTestFolder\\Leotriplett.bmp");
CBitmap* pBitmap = CBitmap::FromHandle(img.Detach());
BITMAP bm;
pBitmap->GetBitmap(&bm);
CDC* pDC = GetDC();
//create a memory dc
CDC memDC;
memDC.CreateCompatibleDC(pDC);
m_newBitmap.CreateCompatibleBitmap(pDC, bm.bmWidth, bm.bmHeight);
HGDIOBJ old = memDC.SelectObject(&m_newBitmap);
// draw on bitmap
memDC.DrawText(L"test", new CRect(180, 180, 500, 500), DT_SINGLELINE | DT_CENTER | DT_VCENTER);
memDC.Draw3dRect(new CRect(180, 180, 500, 500), RGB(255, 0, 0), RGB(0, 255, 0));
memDC.SelectObject(old);
ReleaseDC(pDC);
ScrollbarsVisible();
OnUpdate(NULL, 0, NULL);
m_pBitmap = &m_newBitmap;
// diese Zeile ist die Lösung
m_ImageSize = CSize(bm.bmWidth, bm.bmHeight);
}
Nochmals Danke für die Berichtigung der falschen Codeteile!
Das posten im Forum war Teil der Lösung.
Franz