Labyrinth zum seleber bauen
-
Hallo ich möcht ein Programm schreiben, wo man sich ein labyrinth selber bauen kann. mann kann dann das fertige produckt als bild speichern. zuerst wählt man eine größe für den dialog aus (1024 x 768 oder 800 x 600). das funktioniert schon ganz gut. ich möcht nun aber dem nutzer die möglich keit geben sich ein raster einblenden zu lassen und dieses auch wieder verschienden zu lassen. da ich das labyrinth aus einzelnen bildern zusammensetze dei gezeichnet werrden, werden sie doch vom raster übermalt oder ?
ich habe folgende idee. idas raste auf eine "ebene" zu legen und das labyrinth auf eine andere . geht das und wenn ja wie macht man das?
-
Ist dein View ein CView, CDialog oder CFormView? Du könntest die Offscreen-Technik verwenden. Das Labyrinth zeichnest Du in einen Speichergerätekontext. Dann wird dieser mittels Blit-Operation zur Anzeige gebracht. Das Raster könntest Du dann drüberzeichnen. Wenn es ausgeblendet werden soll brauchst Du dann nur noch mal die Bitmap aus dem Speicher zu blitten. Sollte so funktionieren....
-
Hab ein CDialog.
Habe in einer Funktion folgendes geschrieben :CDC dc; CPen farbe_weis (PS_SOLID,100,RGB(255,0,255)); dc.SelectObject(&farbe_weis); dc.MoveTo(10,10); dc.LineTo(100,100);Leider funktioniert das nicht es wird keine Linie gezeichnet .
weiß gemand warum ?
-
basti_1984 schrieb:
Hab ein CDialog.
Habe in einer Funktion folgendes geschrieben :CDC dc; CPen farbe_weis (PS_SOLID,100,RGB(255,0,255)); dc.SelectObject(&farbe_weis); dc.MoveTo(10,10); dc.LineTo(100,100);Leider funktioniert das nicht es wird keine Linie gezeichnet .
weiß gemand warum ?Wo steht denn das bei Dir?
-
void CLabyrinthDlg::zeichne_raster(int breite, int hoehe) { CDC *dc; dc->SetMapMode(MM_TEXT); // CPen farbe_weis (PS_SOLID,100,RGB(0,0,0)); // dc->SelectObject(&farbe_weis); // dc->MoveTo(10,10); // dc->LineTo(100,100); }in einer seperaten Funktion in der Dialog Klasse
Funktion wird in OnIntitDialog aufgerufen
-
du erstellst da ja auch einfach einen leeren Pointer und ohne dem dc zu sagen, auf welches Fenster er zeichen soll. Hmmm also wenn noch so wenig Ahnung von Device Contexts hast, solltest du vielleicht mal folgender Artikel mit den weiterführenden Links lesen:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_0g6r.aspGrüssli
-
@Dravere: das war nämlich auch meine Vermutung
-
Erst mal danke an euch beide sehe trotzdem noch nicht richtig durch . Kann mir jemand nicht ein paar zeilen quellcode zum zeichnen in einer seperaten funktion geben
danke
-
basti_1984 schrieb:
Erst mal danke an euch beide sehe trotzdem noch nicht richtig durch . Kann mir jemand nicht ein paar zeilen quellcode zum zeichnen in einer seperaten funktion geben
dankeIch glaube ehrlich gesagt nicht daran, dass du innert 10 Minuten, wenn denn meinen Link gleich gesehen hast, alles was in dem Link steht mit den weiterführenden Artikeln gelesen hast. Kein Wunder also, dass du noch nicht durchblickst und da ich nicht will, dass du nur Copy&Paste machst, ohne was dabei zu lernen, wirst du von mir sicherlich keinen Beispielcode bekommen. Zudem hat es in der MSDN selber genügend.
Grüssli
-
http://www.functionx.com/visualc/gdi/introduction.htm
http://www.functionx.com/visualc/gdi/lines.htm
http://www.functionx.com/visualc/gdi/flickerfree.htm
http://www.functionx.com/visualc/gdi/