MFC SDI | Per GDI in Bitmap zeichnen?

eurostar123

Grünschnabel
Hallo Leute,
ich habe ein Problem mit meiner MFC Anwendung, bzw. weiß nicht, wie das Problem angehen soll.
Ich habe mich bereits mit dem GDI der MFC beschäftigt, habe aber noch keine Lösung gefunden.
Folgendes soll erreicht werden: Ein Roboter sendet in einen Endlos-Thread über WLAN seine aktuelle Position (x- und y-Koordinate, sowie Ausrichtung in Grad) im Raum. Eine einfache SDI-Anwendung (ohne Doc/View Modell) soll nun aus den Koordinaten eine Map erstellen. Dazu soll die Wegstrecke, sowie Hindernisse über die Infrarot-Sensoren des Roboters eingezeichnet werden.
Ich hatte mir das so gedacht: Ich erstelle eine Bitmap, in der ich dann die nötigen Pixel über eine Umrechnungskonstante aus den Koordinaten setze. Diese Bitmap wollte ich dann in der OnPaint in meine Anwendung (ChildView) zeichnen und dann ständig neu zeichnen lassen.
Nun zu meinen Fragen:
• Ich denke mal ich brauche ein CBitmap Objekt, richtig?
• Kann ich in dieses Objekt genauso einfach zeichnen, wie in einen DC (MoveTo,LineTo,SetPixel, etc.)? Wenn ja wie?
Dieses Bitmap muss ich dann nun noch in meiner OnPaint Funktion abbilden lassen und die Anwendung dazu bringen, neu zu zeichnen (mit Invalidate() z.B.)?

Ich hoffe wirklich auf eure Hilfe, da es sich hier nicht um ein Freizeit Projekt handelt, sondern die Programmierung der Anwendung ein Teil meiner Abiturprüfung darstellt (Besondere Lernleistung), deren Abgabe schon am 26. März ist. Bitte helft mir.
Danke im Voraus. Gruß,
eurostar123
 
Ganz einfach

- erstell ein Bitmap in der gewünschten Größe
- erstell einen CDC der Kompatibel zu deinen ScreenDC ist (also einfach den ScreenDC holen und beim CreateDC mit übergeben)
- Jetzt bindest du das Bitmap an den neuen DC (SelectObject)
- jetzt kannste ganz normal über den DC in das Bitmap zeichnen
- mit invalidate neu zeichnen erzwingen
- die OnPaint/onDraw wird automatisch aufgerufen
- aus den MemDC in den ScreenDC blitten (BitBlt) in der OnPaint/OnDraw

fertig! das ganze geht natürlich auch in dem du nur einen ausschnitt Blittest, ich weis ja nicht wie groß die map wird
 

Neue Beiträge

Zurück