JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=2ea01405e14f2daa0b8b23d3e9c7ff7eMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

BLUTIGER ANFAENGER

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Codechecker
Mini JLI'ler



Anmeldedatum: 30.12.2002
Beiträge: 16

Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 10:55    Titel: BLUTIGER ANFAENGER Antworten mit Zitat

Hi

ich bin noch ein anfänger im programmieren und wollte fragen ob jemand
ne website weis wo steht wie man ein fenster erzeugt ich hab zwar das buch jetzt lerne ich spieleprogrammierung.. aber aus den anweisungen daraus werde ich nicht sehr schlau zudem hab ich die Buch Cd verlegt.

Kann mir jemand sagen wie ich das zustande bringe?

thx
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 11:57    Titel: Antworten mit Zitat

Code:

HWND CreateMainWindow(HINSTANCE hInstance) //Erstellt das Hauptfenster
{
WNDCLASSEX wndClass; //Anlegen der Struktur, in der Informationen über
                     //das Fenster angegeben werden.

// Diese Struktur wird nun mit Werten belegt:
wndClass.cbSize = sizeof(WNDCLASSEX); //Angeben der Grösse der Struktur,
                                      //ist zum erkennen der Version wichtig.

wndClass.style = CS_DBLCLKS |         //Stile: CS_DBLCLKS legt fest das eine Nachricht bei einem Doppelklick in das Fenster gesendet wird.
             CS_OWNDC |           //CS_OWNDC legt fest, dass das Fenster einen eigenen Device Context haben soll.
 CS_HREDRAW |         //CS_HREDRAW legt zusammen mit
 CS_VREDRAW;          //CS_VREDRAW fest, dass das Fenster bei skalierung neu gezeichnet wird.

wndClass.lpfnWndProc = MessageHandler; //Festlegen der Callback-Funktion.

wndClass.cbClsExtra = 0;              //Zusätzliche Angaben
wndClass.cbWndExtra = 0;              //werden nicht gebraucht.

wndClass.hInstance =hInstance;        //Anwendungs-Instanz.

wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW); //Weisser Pinsel für die Hintergrundfarbe.

wndClass.hCursor = LoadCursor(NULL, IDC_ARROW); // Standart Maus-Cursor verwenden.

wndClass.lpszMenuName = NULL;         //Fenster hat kein Menue.

wndClass.lpszClassName = "Window_Class"; //Der Name der Fensterklasse wird noch beim Aufruf von CreateWindowEx benötigt.

    wndClass.hIcon = LoadIcon(NULL, IDI_WINLOGO); //Fenster-Icon.

wndClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO); //Kleines Icon in der Fenster-Leiste.

RegisterClassEx(&wndClass); //Registrieren der Fensterklasse.

return CreateWindowEx(
NULL, // keine weiteren Stile.
"Window_Class", //Name der Fensterklasse.
"MegaChat", //Name des Fensters.
WS_OVERLAPPEDWINDOW | //Fenstereigenschaften: WS_OVERLAPPEDWINDOW legt in der Fenster-Leiste die "Schliessen", "Maximieren" und "Minimieren" Knöpfe an.
WS_VISIBLE,           //WS_VISIBLE macht das Fenster von Anfang an sichtbar.
100, 100,                 //Anfangsposition in der linken, oberen Bildschirmecke.
700, 580,             //Groesse des Fensters.
NULL,                 //Handle des übergeordneten Fensters. Da es das Hauptfenster ist, wird der wert NULL angegeben.
NULL,                 //Name des Menues. Da keines vorhanden ist, wird der wert auf NULL gesetzt.
hInstance,            //Anwendungsinstanz
NULL                  //Nicht benötigt, daher: NULL
);
}


Was ist dadran nicht verständlich? Christian hat doch alles bis ins kleinste Detail erklärt (im Buch).

Sag doch was genau du nicht kapierst!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Codechecker
Mini JLI'ler



Anmeldedatum: 30.12.2002
Beiträge: 16

Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:06    Titel: Antworten mit Zitat

Erstmal danke

also mein genaues problem ist das er doch in der Callbackfunktion stehen hat

Code:
LRESULT CALLBACK MessageHandler(HWND hWnd,
                                                                 UINT msg,
                                                                 WPARAM wParam, 
                                                                 LPARAM lParam)
{
     switch(msg)
     {
          case WM_Create:
                            // Initalisierungen für das Fenster

         ....
      }
}



So meine Frage ist nun was ich bei den Initialisierungen für das Fenster hier in der Callbackfunktion angeben muss.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:24    Titel: Antworten mit Zitat

aso
Du kannst da einfach sachen reinschreiben, die nach/bei (weiß nich) erstellen des Fensters ausgeführt werden sollen. Ich hab des allerdings noch nie verwendet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Codechecker
Mini JLI'ler



Anmeldedatum: 30.12.2002
Beiträge: 16

Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:28    Titel: Antworten mit Zitat

Aha dann hab ich doch alles richtig gemacht aber trozdem gibt der mir ne Fehlermeldung aus und zwar:


LIBCD.lib(wincrt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _WinMain@16
Debug/Windows.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

Und es ist doch egal welche windowsversion man benutzt oder (hab Win XP)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:32    Titel: Antworten mit Zitat

Du musst ne Main funktion haben!!!
Code:

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
  //Die Funktion wird immer beim starten des Programms ausgeführt!!!
  return 1;
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Codechecker
Mini JLI'ler



Anmeldedatum: 30.12.2002
Beiträge: 16

Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:35    Titel: Antworten mit Zitat

Hmm so dumm bin ich nun auch wieder nicht natürlich weiss ich das mann ne mainfunktion braucht.

PS: ich geh auf ne hbfi also ist mir das progrmmieren nicht gänzlich unbekannt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Codechecker
Mini JLI'ler



Anmeldedatum: 30.12.2002
Beiträge: 16

Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:37    Titel: Antworten mit Zitat

MEINE FRESSE BIN ICH DUMM!!!!!!!!!!!!!!


ich hab statt WinMain winmain geschrieben und da C++ ja casesensitive ist hat der compiler das nicht erkannt *LOL*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:42    Titel: Antworten mit Zitat

Das hat doch mit Dummheit nichts zu tun, passiert einem doch laufend, oder bin ich der einzige hier mit solchen Problemen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Codechecker
Mini JLI'ler



Anmeldedatum: 30.12.2002
Beiträge: 16

Medaillen: Keine

BeitragVerfasst am: 31.12.2002, 12:45    Titel: Antworten mit Zitat

Danke mann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum