Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Codechecker Mini JLI'ler
Anmeldedatum: 30.12.2002 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 31.12.2002, 10:55 Titel: BLUTIGER ANFAENGER |
|
|
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 |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 31.12.2002, 11:57 Titel: |
|
|
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 |
|
|
Codechecker Mini JLI'ler
Anmeldedatum: 30.12.2002 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:06 Titel: |
|
|
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 |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:24 Titel: |
|
|
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 |
|
|
Codechecker Mini JLI'ler
Anmeldedatum: 30.12.2002 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:28 Titel: |
|
|
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 |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:32 Titel: |
|
|
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 |
|
|
Codechecker Mini JLI'ler
Anmeldedatum: 30.12.2002 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:35 Titel: |
|
|
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 |
|
|
Codechecker Mini JLI'ler
Anmeldedatum: 30.12.2002 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:37 Titel: |
|
|
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 |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:42 Titel: |
|
|
Das hat doch mit Dummheit nichts zu tun, passiert einem doch laufend, oder bin ich der einzige hier mit solchen Problemen? |
|
Nach oben |
|
|
Codechecker Mini JLI'ler
Anmeldedatum: 30.12.2002 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 31.12.2002, 12:45 Titel: |
|
|
Danke mann |
|
Nach oben |
|
|
|