K
Tja TGGC,
die Schonfrist ist rum *gnarrharrharrwhaarrr*
Da ich nun endlich das Glück habe wieder in den Genuß eines Internetzugangs zu
kommen hier als der Sourcecode:
Die Funktion "ZeichneBild" zeichnet nach jeder Bewegung der Spielfigur die
einzelnen Tiles innerhalb zweier For-Schleifen neu:
void CMORK_BEWEGUNGDlg::ZeichneBild(IPicture *bild, int pX, int pY, int pBreite, int pHoehe)
{
CRect rc;
GetClientRect(&rc);
OLE_XSIZE_HIMETRIC width;
OLE_YSIZE_HIMETRIC height;
bild->get_Width(&width);
bild->get_Height(&height);
int x = 0, y = 0, size_x = width*96/2540, size_y = height*96/2540;
if ((size_x > 32) || (size_y > 32))
{
int neueXPosition = pX-((size_x-32)/2);
int neueYPosition = pY-(size_y-32);
bild->Render(*dcMem, neueXPosition, neueYPosition, size_x, size_y, 0, height, width, -height, &rc);
}
else
{
bild->Render(*dcMem, pX, pY, pBreite, pHoehe, 0, height, width, -height, &rc);
}
}
Und die Funktion "BitBlt" sollte das ganze dann eigentlich auf den aktiven
Screen kippen:
void CMORK_BEWEGUNGDlg::BltBild()
{
CClientDC cdc(this);
cdc.BitBlt(0, 0, 100, 100, dcMem, 0, 0, SRCCOPY);
// int msga = MessageBox("bit", "xx");
// // this->Invalidate(true);
// CDC * pDC = GetDC();
// // CRect rc;
// // GetClientRect(&rc);
// CBitmap bitmap;
// bitmap.CreateCompatibleBitmap(pDC, 672, 672);
// CBitmap * oldBitmap = dcMem.SelectObject(&bitmap);
// // CClientDC dc(this);
// // dc.BitBlt(0, 0, 672, 672, &dcMem, 0, 0, SRCCOPY);
// pDC->BitBlt(0, 0, 672, 672, &dcMem, 0, 0, SRCCOPY);
// // CBitmap * bmp = dcMem.GetCurrentBitmap();
// // CClientDC cdc(this);
// // cdc.BitBlt(0, 0, 672, 672, &dcMem, 0, 0, SRCCOPY);
// // dcMem.BitBlt(0, 0, 320, 320, dc, 0, 0, SRCCOPY);
// // dcMem.SelectObject(oldBitmap); // Altes Bitmap wieder selektieren
// // ReleaseDC(this->GetDC());
}
Meine - wenn auch falsche - Vorstellung vom Blitten mit den MFC sah eigentlich
so aus, dass ich mir einen Gerätekontext erzeuge und dann einfach mittels
BitBlt() die Pixel aus dem Speicherkontext auf den neuen Gerätekontext zeichne.
Die Kommentare oben habe ich mal der Vollständigkeit halber belassen um zu
zeigen was ich aus Verzweifelung schon alles für einen $§"&# probiert habe.
Vielleicht blickt ja einer von Euch da durch; Meine C++ Kenntnisse reichen
da leider nicht genug aus
Gruß und Dank im Voraus,
Khadgar