Dynamische Bitmaps in VC++ 6.0 zeichnen

Hi Leute,
mein Problem ist in VC++ bitmaps aus einer datei zu laden und grafikalgorithmen zur bildverbesserung und objektsegmentierung auf dieses bitmap anzuwenden.

die algorithmen sind kein problem, nur wenn ich auch nur versuche eine Linie in das bitmap zu zeichnen, wird die bitmap nicht aktualisiert.

meine bitmap ist gespeichert in einem CStatic-objet in einem dialogfeld.
ich hole die bitmap aus dem CStatic-object heraus.
danach verbinde ich den Gerätekontext mit dem bitmap und versuche eine linie zu zeichnen.
die verbindung zwischen bitmap und gerätekontext wird wieder getrennt und das bitmap in das CStatic-objekt zurückgespeichert.

Das Problem ist, das bitmap verschwindet komplett und es wird keine linie gezeichnet!!!
Kann mir jemand sagen warum?

danke.
Oliver

Quellcode:

void ProgramDlg::open_mouth:nButtonGreenLine()
{
BITMAP info;
CBitmap picture;

// get information about the bitmap
GetObject( m_staticBmp.GetBitmap(), sizeof(BITMAP), &info );
pciture.CreateCompatibleBitmap( GetDC(), info.bmWidth, info.bmHeight );
picture.FromHandle( m_staticBmp.GetBitmap() );

// create device context with bitmap
CDC memDC;
memDC.CreateCompatibleDC( GetDC() );
CBitmap *poldbmp = memDC.SelectObject( &picture );

// create pencil to draw a green line
CPen newpen;
newpen.CreatePen( PS_SOLID, 30, RGB( 0, 255, 0 ) );
CPen *oldpen = memDC.SelectObject( &newpen );
memDC.MoveTo( 0, 100 );
memDC.LineTo( 100, 100 );
memDC.SelectObject( oldpen );

// get the bitmap out of the device context
poldbmp = memDC.SelectObject( poldbmp );
HBITMAP hImage;
hImage = poldbmp->operator HBITMAP();

// store back the bitmap in the Staticobject
m_staticBmp.SetBitmap( hImage );
return;
}

Versuch es mal mit:

Invalidate();
UpdateWindow();

Wenn das nichts hilft, hier ist mein Code, der ein Bitmap im Speicher erzeugt und es dann anzeigt (in der paint-Routine):

//Bitmap im Speicher erzeugen
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC,ansichtsize, ansichtsize);
CBitmap *pOldBitmap = MemDC.SelectObject(&bmp);

//weißer Hintergrund
MemDC.Rectangle(0,0,ansichtsize,ansichtsize);

////////hier zeichnen!!!

//Bitmap anzeigen
pDC->BitBlt(10,10,ansichtsize,ansichtsize,&MemDC,0,0,SRCCOPY);

MemDC.SelectObject(pOldBitmap);

Andrea

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]