Bilder zeichnen, Timer und co.
-
Hallo Leute,
ich habe ein großes Problem mit MFC.
Folgendes benötige ich bis nächsten Donnerstag (06.12.07):
Ein MFC Programm wo in dem ersten Fenster zwei Bilder und 2 Auswahlmöglichkeiten sind.
Je nach Auswahl werden einige Objekte erstellt.
Alle paar Millisekunden (Timer) sollen Bilder, an Koordinaten die aus Objekten geholt werden, gezeichnet werden.
Außerdem muss ich auf Drücken der Pfeiltasten reagieren.Nun meine Probleme.
Ich habe vor diesem Projekt noch niemals eine Zeile C++ geschrieben und bin daher ziehmlich unsicher im Umgang mit C++. Mein zweites Problem ist im Grunde das komplette MFC. Ich komme mit der ganzen Struktur nicht wirklich zurecht. Das Tutorial auf http://www.cpp-tutor.de/mfc/toc.htm hat mir bis jetzt auch nicht wirklich weiter geholfen.
Wenn ich bei Visual Studio 2005 ein MFC Projekt erstelle bekomm ich ja direkt 15 Dateien die mir ein Fenster darstellen können. Allerdings vermisse ich dort sogar einige Dinge die ich im Tutorial gesehen habe wie z.B.m_pMainWnd = new CFrameWnd;Auf diese wird nur zugegriffen ohne vorherige Zuweisung soweit ich das sehe.
Auch weiß ich nicht wie ich Bilder einbinden kann oder generell Objekte wie einen RadioButton oder sowas erstelle. Ich hab auch irgendwie niergends eine anständige Dokumentation oder ähnliches darüber. Bis jetzt habe ich es grade mal geschafft die Größe des des Fensters zu ändern aber nichtmals sowas wie die Hintergrundfarbe.Das Fachkonzept dazu hab ich bereits fertig, allerdings ist dies kein MFC Projekt. Dazu noch gleich die Frage ob ich den folgenden Aufruf auch in einem MFC Projekt nutzen kann, ob ich also einfach mein Fachkonzept ohne weiteres nutzen kann
System::Threading::Thread::Sleep()Ich hoffe das mir hier Jemand, für einen C++ Anfänger verständlich, erklären kann wie ich sowas anstelle bzw. mir ein geeignetes Tutorial bzw. eine geeignete Dokumentation zeigen kann.
MfG
DeliKato
-
Bei den Vorausetzungen wird es schwierig bis Do das umzusetzen. Aber es ist nicht unmöglich. Das Tutorial was du da genommen hast ist für meine Begriffe recht gut für Einsteiger, bezieht sich aber auf die Version VS 6.0. Du hast jetzt schon die 2005er, damit werden sich geringfügige Abweichungen im Aussehen einzelner Funktionen des Anwendungsgerüstes ergeben.
Aber zunächst mal zu den wesentlichen Dingen. Beim Erstellen des Projektes muss dir klar sein, was du machen willst. MDI, SDI oder dialogfeldbasierend sind hier die Möglichkeiten die du hast. Wenn ich das sol lese (mir wird zwar noch nicht ganz klar was du machen willst) dürften entweder SDI oder Dialogfeld als Projekt für dich in Frage kommen. Wenn du auf der Oberfläche Buttons in einem Fenster haben willst dann solltest du eine SDI-Anwendung mit einem CFormView als Basisklasse für die View nehmen.
Du solltest dir ganz genau mal das Kapitel 4 ansehen. Da wird das Zusammenspiel der einzelnen Klassen erklärt. Wenn du das nicht verstanden hast ist es schwierig zu begreifen, wie ein MFC-Programm funktioniert.DeliKato schrieb:
Auf diese wird nur zugegriffen ohne vorherige Zuweisung soweit ich das sehe.
Da sind schon Zuweisungen geschehen. Du siehst ja nicht alles was die MFC im Hintergrund macht.
-
Letzendlich soll das ganze ein kleines Spiel werden. Ich habe ein SDI Projekt genommen weil ich im grunde nur ein Auswahlfenster brauche und danach sollen im Fenster nurnoch Bilder angezeigt werden an bestimmten koordinaten welche in meinen Objekten gespeichert sind.
Irgendwie find ich mich mit dem ganzen MFC aber nicht wirklich zurecht. Ich finde zich Beispiele für einen Button in einem Dialogfeld aber nichtmals was anständiges zu nem Button in einem normalen Fenster. Irgendwie ist das alles sehr verwirrend.
Es ist auch nicht vorgegeben das unbedingt MFC genutzt werden muss allerdings ist das das einzige wo ich nen bischen Material zu habe. Die einzigen Kriterien die noch nicht erfüllt sind sind die Grafische Anzeige und die Benutzung eines Timers.
Wenn ich mir Beispiele in der Hilfe angucke dann steht da auch nur sowas wie "Öffnen Sie die folgende Datei für Codebeispiele...". Problem dabei ist das ich diese Beispielprojekte nicht habe/finde.
-
DeliKato schrieb:
Letzendlich soll das ganze ein kleines Spiel werden. Ich habe ein SDI Projekt genommen weil ich im grunde nur ein Auswahlfenster brauche und danach sollen im Fenster nurnoch Bilder angezeigt werden an bestimmten koordinaten welche in meinen Objekten gespeichert sind.
Irgendwie find ich mich mit dem ganzen MFC aber nicht wirklich zurecht. Ich finde zich Beispiele für einen Button in einem Dialogfeld aber nichtmals was anständiges zu nem Button in einem normalen Fenster. Irgendwie ist das alles sehr verwirrend.
Es ist auch nicht vorgegeben das unbedingt MFC genutzt werden muss allerdings ist das das einzige wo ich nen bischen Material zu habe. Die einzigen Kriterien die noch nicht erfüllt sind sind die Grafische Anzeige und die Benutzung eines Timers.
Wenn ich mir Beispiele in der Hilfe angucke dann steht da auch nur sowas wie "Öffnen Sie die folgende Datei für Codebeispiele...". Problem dabei ist das ich diese Beispielprojekte nicht habe/finde.
Der Möglichkeiten gibt es viele. Wenn du ein einfaches SDI genommen hast, dann kannst du nicht so einfach einen Button darstellen wie es z.B. in einem Dialog oder einem FormView geht. Für die letzten beiden existieren im Ressourcen-Editor bereits grafische Ressourcen, die dann einfach "visual" bearbeitet werden können. Dazu ziehst du dir einen Button aus der Toolbox in deine Ressource, legst eine Membervariable dazu an, fertig. In einem SDI-Fenster musst du dich selbst um die Erstellung des Buttons kümmern. Membervariable erstellen, in der OnCrate eine Instanz des Buttons erstellen. Dann brauchst du noch die Funktionen OnClicked...(), um auf einen Buttonklick zu reagieren.
Vorschlag von mir wäre:
Variante 1: Du lässt das mit dem SDI und einem Fenster, was von CView abgeleitet ist. Dann packst du die ganzen Einstellungen (Button und andere Benutzereingaben) in einen Dialog und benutzt nur das Fenster zum Anzeigen der Bilder. Dazu wird die Methode OnDraw der Fensterklasse verwendet.
Variante 2: Du nimmst eine SDI mit CFormView. Dann kannst Du Steuerelemente über den Ressourceneditor platzieren und hast auch sonst ziemlich viele Unterstützung durch Assistenten. Nun weiß ich allerdings nicht wie man da ein Bild darstellt. Geht wahrscheinlich genauso wie bei CView.Alles andere steht aber in dem Tutorial. :xmas2:
-
Danke für die Tipp, aber wir haben mitlerweile eine Engine genommen weil wir MFC nicht mögen bzw. damit nicht zurecht kommen und laut Aufgabenstellung auch nicht gesagt ist das wir keine Engine nehmen dürfen.