JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Der "Windows-Programmierung"- Thread
Gehe zu Seite Zurück  1, 2, 3, 4, 5
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 03.08.2007, 20:35    Titel: Antworten mit Zitat

RebornX hat Folgendes geschrieben:
WIE AUCH IMMER!! XD

Können wir jetzt wieder zu meinem Problem kommen ?? Laughing

der Meinung bin ich auch! Also das Thema mit den strings ist jetzt klar und abgeschlossen (hoffe ich)

Zitat:
hmm, mit WM_SYSKEYDOWN klappts auch nicht.
Und naja die Nachricht wird gesendet sobald der Focus nicht mehr auf das Editfenster zeigt und ich auf Eingabe klicke...

Also welche Nachricht meinst du mit "wird gesendet"? Und was meinst du mit "Eingabe"? Den Button, das Editfeld oder was anderes

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
RebornX
JLI'ler



Anmeldedatum: 16.03.2007
Beiträge: 169

Medaillen: Keine

BeitragVerfasst am: 03.08.2007, 20:42    Titel: Antworten mit Zitat

Also:
Sobald ich auf Eingabe/Return klicke sendet die Callback Funktion WM_KEYDOWN, ABER nur wenn der Focus nicht auf das Editfeld zeigt.
Das gleiche gilt auch bei WM_SYSKEYDOWN...

Hier nochmal der Code:
http://nopaste.de/p/aCxEb2NMi
_________________
Besucht meine Seite:
www.cpparchiv.dl.am
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 03.08.2007, 21:04    Titel: Antworten mit Zitat

Jo, du musst einen hook ienbauen. Ich hatte mal bei nem Chat das selbe Problem, das ich in der Zeile Enter drücken wollte und das gleiche geschehen sollte, wie wenn ich auf den ok Button klicke.
Die Technik ist recht simpel, du musst eine Callback für das eingabefeld schreiben und nur die Keydown nachricht abfangen und alle anderen an die normale Callback des Eingabefeldes weitergeben.

CPP:
LRESULT CALLBACK EditWndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);
LONG_PTR OldEditWndProc;


   hEingabe=CreateWindow("edit", NULL, WS_CHILD | WS_BORDER | WS_VISIBLE, 0, 200, 600-120, 24, hWnd, (HMENU)2, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
         OldEditWndProc=SetWindowLongPtr(hEingabe, GWLP_WNDPROC, (LONG_PTR)EditWndProc);




//und dann noch:


LRESULT CALLBACK EditWndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
   switch(Message)
   {
   case WM_KEYDOWN:
      if(VK_RETURN==wParam)
      {
         Senden();
      }
   }
   return CallWindowProc((WNDPROC)OldEditWndProc, hWnd, Message, wParam, lParam);;
}


_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
RebornX
JLI'ler



Anmeldedatum: 16.03.2007
Beiträge: 169

Medaillen: Keine

BeitragVerfasst am: 03.08.2007, 21:13    Titel: Antworten mit Zitat

Ja da habe ich mir auch als erstes gedacht, aber es müsste doch auch eigentlich eine einfacherere Methode dafür geben, denn solche Optionen benutzten doch die meisten Programme?
Besonders bei so kleinen Eingabefeldern Confused
_________________
Besucht meine Seite:
www.cpparchiv.dl.am
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
RebornX
JLI'ler



Anmeldedatum: 16.03.2007
Beiträge: 169

Medaillen: Keine

BeitragVerfasst am: 03.08.2007, 21:35    Titel: Antworten mit Zitat

Hmm habe es jetzt mal mit noch einer Callbackfunktion probiert, aber irgendwas mache ich falsch, denn jetzt wird nicht einmal WM_KEYDOWN aufgerufen wenn der focus nicht auf das editfeld zeigt.

Hier der Code:
http://nopaste.de/p/a26arrbQS
_________________
Besucht meine Seite:
www.cpparchiv.dl.am
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 03.08.2007, 21:48    Titel: Antworten mit Zitat

Natürlich wird das aufgerufen, du fragst es nur nicht ab. Wenn der Focus im Eingabefeld leigt, bekommt dein Hauptfenster keine Nachrichten mehr. Die bekommt immer nur das aktuelle Fenster, in dem Fall dann also dein Eingabefeld. Da müsste die dann aber auch ankommen, jedenfalls siehts auf den ersten Blick vom Code her so aus.
Und ne einfachere Möglichkeit gibts glaube ich nicht. Aber die hier ist ja auch nicht so wahnsinnig schwer.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
RebornX
JLI'ler



Anmeldedatum: 16.03.2007
Beiträge: 169

Medaillen: Keine

BeitragVerfasst am: 04.08.2007, 09:34    Titel: Antworten mit Zitat

Hm? Aber ich habe doch die zweite Callback durch
CPP:
return CallWindowProc((WNDPROC)OldEditWndProc, hWnd, Message, wParam, lParam);


aufgerufen??
_________________
Besucht meine Seite:
www.cpparchiv.dl.am
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 04.08.2007, 19:53    Titel: Antworten mit Zitat

Jona meint, dass du in der Callback des Fensters die WM_KEYDOWN gar nicht mehr abfragst. Du leitest mit dieser Zeile nur die Nachrichten des Editfensters an die alte (Standard-)Callback des Editfensters weiter. Die Callback des Fensters ist die, die reagiert wenn du im Fenster etwas machst (z.B. Enter drückst); die für das Editfenster reagiert nur in Bereich des Eidts und nicht im Fenster...

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
City Hunter
Super JLI'ler


Alter: 38
Anmeldedatum: 18.04.2004
Beiträge: 330
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 19:00    Titel: Hey Antworten mit Zitat

Gibs es eindlich nur tuts über WinApi oder auch Bücher darüber? Suche nämlich ein Buch für die WinApi am besten wie man WinApi in C++ einfügen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 19:05    Titel: Antworten mit Zitat

also es gibt immer wieder so ein bestimmtes buch zur winAPI, das mir bei solchen fragen einfällt. Z.B. handelt dieser komplette Thread von diesem Buch. ( Arrow 1. Post lesen) Razz Razz

les dir auch die anderen Threads in diesem Subforum zu dem thema durch, dann findest du ganz schnell was du suchst. Du wirst aber auch sehen, dass es nicht sowas für C++ gibt, aber das lässt sich mit einigermaßen guten c++ kenntnissen mehr oder weniger gut portieren.

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
City Hunter
Super JLI'ler


Alter: 38
Anmeldedatum: 18.04.2004
Beiträge: 330
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 19:11    Titel: Antworten mit Zitat

Meinste das Buch von Petzhold?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 19:14    Titel: Antworten mit Zitat

ja klar welches sonst??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
City Hunter
Super JLI'ler


Alter: 38
Anmeldedatum: 18.04.2004
Beiträge: 330
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 19:16    Titel: Antworten mit Zitat

Naja dachte och das es nen ander Autor noch sowas geschrieben hat als Petzhold Wink.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
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
Gehe zu Seite Zurück  1, 2, 3, 4, 5
Seite 5 von 5

 
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