Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DarK Super JLI'ler

Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 24.10.2004, 22:53 Titel: [WinAPI] Mehere Fenster |
|
|
hi,
ich hab am Anfang ein kleines Fenster in dem man sich einlogt..
nun möchte ich das nachdem man auf den Login Button geklickt
hat ein neues Fenster öffnet und das Login Fenster geschlossen wird..
Immer wenn ich das aber versuche dann schließt sich das login fenster
und der rest auch obwohl ich nur ein DestroyWindow(hwnd) auf das
login fenster mache...
Ich hab beide Fenster als Main Fenster (keins als Child)...
Meine Frage genau ist nun , wie realisiert man das ?
läst man ein "unsichtbares" main fenster laufen und sind
Login und das 2. Fenster dann nur Child Fenster ?
wenn nicht, wie dann ? _________________ "Denken ist Arbeit, Arbeit ist Energie und Energie soll man sparen."
"Theorie ist, wenn man alles weiss, aber nichts funktioniert.
Praxis ist, wenn man nichts weiss, aber alles funktioniert.
Realität ist, wenn nichts funktioniert und keiner weiss warum."
"Es gehört ein wenig Mut dazu nicht das zu tun was ALLE tun" |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 25.10.2004, 07:24 Titel: |
|
|
Ganz einfach, in deiner WinMain machst du folgenden Aufruf
Code: |
if(showStartDlg(hInstance) != IDOK)
{
return -1;
}
|
und dein Dialogfenster läuft solange bis OK gedrückt wurde. Bei allen anderen Aktionen (abbrechen, Fenster mit X schließen) wird das Programm abgebrochen.
Erst nach drücken von OK (in deinem Fall Login) wird das Hauptfenster angezeigt. Allerdings musst du dein Login-Dialog als Childfenster aufrufen. _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
DarK Super JLI'ler

Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 25.10.2004, 08:58 Titel: |
|
|
mm, okay,aber wie ruf ich das neuen fenster nach dem login fenster auf? also sind beide fenster dann child fenster ?
und es ist kein Dialog, ich hab beides mit CreateWindowEx erzeug ....
muss ich das ändern? _________________ "Denken ist Arbeit, Arbeit ist Energie und Energie soll man sparen."
"Theorie ist, wenn man alles weiss, aber nichts funktioniert.
Praxis ist, wenn man nichts weiss, aber alles funktioniert.
Realität ist, wenn nichts funktioniert und keiner weiss warum."
"Es gehört ein wenig Mut dazu nicht das zu tun was ALLE tun" |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 25.10.2004, 09:10 Titel: |
|
|
Also ich kenn es nur wenn du das als Dialogfenster laufen lässt. Rein optisch macht das ja keinen Unterschied. Vom Programm her hab ich das so:
Code: |
int WINAPI WinMain(HINSTANCE hInstance, // Handle der Programminstanz
HINSTANCE hPrevInstance, // Handle der letzten Instanz
LPSTR lpCmdLine, // Kommandozeile
int nCmdShow) // Art wie das Fenster angezeigt werden soll
{
if(showStartDlg(hInstance) != IDOK)
{
return -1;
}
// Rest der WinMain-Schleife....
....
return 0;
}
|
Das Dialogfenster läuft dann solange bis OK gedrückt wurde, dann wird der Rest der WinMain abgearbeitet.
In dem Dialog selbst legst du dann Fest, was beim klicken auf OK passiert (Variablen füllen etc.) und zum schluß gibts Code: | EndDialog(hwnd,IDOK); | um das Dialogfenster zu schließen. _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
OLiver Super JLI'ler

Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 25.10.2004, 13:51 Titel: |
|
|
Es kann vielleicht sein, dass du in deiner WndProc von dem Main Window ein
Code: |
.....
case WM_DESTROY:
PostQuitMessage(0)
break;
.......
|
hast. |
|
Nach oben |
|
 |
DarK Super JLI'ler

Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 25.10.2004, 17:20 Titel: |
|
|
@schneidi74: ja ich aber nur nicht mit Dialogen sondern mit Fenstern
aber ich versuchs mal so , obs auch mit festern geht, ka
@OLiver: nur so schließt er mir dann beide Fenster
obwohl beide Fenster ne eigene Callback function haben _________________ "Denken ist Arbeit, Arbeit ist Energie und Energie soll man sparen."
"Theorie ist, wenn man alles weiss, aber nichts funktioniert.
Praxis ist, wenn man nichts weiss, aber alles funktioniert.
Realität ist, wenn nichts funktioniert und keiner weiss warum."
"Es gehört ein wenig Mut dazu nicht das zu tun was ALLE tun" |
|
Nach oben |
|
 |
OLiver Super JLI'ler

Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 25.10.2004, 17:38 Titel: |
|
|
Hmm, ich weiß nicht, ob du mich richtig verstanden hast, habe ich vielleicht ein bisschen blöd ausgedrückt.
Ich meine, wenn du den obigen Codeauschnitt in deinem MainWindow hast, ist es klar, dass sich alle schließen, weil ja eine PostQuitMessage gesendet wird, wenn dein Window mittels DestroyWindow zerstört wird und da ist klar, dass sich das ganze Programm beendet. |
|
Nach oben |
|
 |
DarK Super JLI'ler

Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 25.10.2004, 19:30 Titel: |
|
|
ah ich glaub ich verstehe, das würde das Close problem beseitigen,
aber wie ist es mit dem 2. Fenster aufrufen, wie mach ich das?
setz ich es erst auf "nicht WS_VISIBLE" und später ruf ich es
mit ShowWindow auf ?
oder wie? _________________ "Denken ist Arbeit, Arbeit ist Energie und Energie soll man sparen."
"Theorie ist, wenn man alles weiss, aber nichts funktioniert.
Praxis ist, wenn man nichts weiss, aber alles funktioniert.
Realität ist, wenn nichts funktioniert und keiner weiss warum."
"Es gehört ein wenig Mut dazu nicht das zu tun was ALLE tun" |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 25.10.2004, 20:04 Titel: |
|
|
schau dir mal diese Seite an:
http://www.henkessoft3000.de/
Da gibt's ein recht gutes Tut über WinApi Programmierung. Ich hab eben beim drüberfliegen glaub ich gesehen, dass da auch erklärt ist, wie man auf button-klicks reagiert.
Ich würd an deiner Stelle glaub ich so vorgehen, dass ich das 1. Fenster starte. Man da halt seinen login etc. macht und beim klicken auf Login das zweite Fenster gestartet wird. Sprich eben auf den Login Button reagieren. _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
OLiver Super JLI'ler

Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 26.10.2004, 14:08 Titel: |
|
|
DarK hat Folgendes geschrieben: | ah ich glaub ich verstehe, das würde das Close problem beseitigen,
aber wie ist es mit dem 2. Fenster aufrufen, wie mach ich das?
setz ich es erst auf "nicht WS_VISIBLE" und später ruf ich es
mit ShowWindow auf ?
oder wie? |
Denke Ja. |
|
Nach oben |
|
 |
DarK Super JLI'ler

Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 26.10.2004, 16:51 Titel: |
|
|
okay danke leute, ich check mal die sachen am wochende aus, hab leider keine Ferien dann meld ich mich wieder  _________________ "Denken ist Arbeit, Arbeit ist Energie und Energie soll man sparen."
"Theorie ist, wenn man alles weiss, aber nichts funktioniert.
Praxis ist, wenn man nichts weiss, aber alles funktioniert.
Realität ist, wenn nichts funktioniert und keiner weiss warum."
"Es gehört ein wenig Mut dazu nicht das zu tun was ALLE tun" |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 26.10.2004, 20:28 Titel: |
|
|
ich würd einfach das Fenster mit close Windwos schließen und jmit CreateWindwos ein neues erstellen, mit eigener Callbackfunktion natürlich. dürfte ja nicht soo schwer sein, aber ich bin mir nicht sicher. Ihc lerne das gerade alles, hab mit ein hübsches Buch gekauft... _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
|