Maustaste disablen
-
BOA schrieb:
PreTranslate geht nicht dafür, da nach dem Countdown die Maustaste ja wieder erlaubt ist, nun weiß ich an der Stelle nicht, ob es während des Countdowns oder danach passiert ist.
Setz dir doch ne bool-Variable, dann weißt du es.
PS: Ähm, ich glaube PreTranslateMessage wird gar nicht aufgerufen.
Das Windows merkt sich das und man kann nix machen - würd ich mal vermuten.
-
du wirst doch wissen, wann der Countdown losgeht und wann er endet, also kannst du doch eine Statusvariable setzen und diese wird in der PreTranslate-Message ausgewertet?
Was is an Sanduhr Hackerscheiß?
-
Aloha,
die Bool Variante war natürlich auch mein erster Gedanke, geht nicht aus dem o.g. Grund.
Die Maustasten ereignisse werden erst nach dem Countdown in der PreTranslate bahandelt, auch wenn Du während dessen die Maus klickst.
So nützt mir es herzlich wenig ne Bool zu setzen, da der Countdown an der Stelle schon vorbei ist.
Der Countdown ist kein Thread, hätte ich vielleicht erwähnen sollen...
Mit Hackerscheiße meine ich alles , was irgendwie hilfsmäßig programmiert/gebastelt wird. Ist absolut nicht negativ zu bewerten !!!
Wie kann ich die Message Queue löschen, bzw. speziell in dieser einzelne Ereignisse killen ????
Dann hab ich gar keine Probs mehr.Grüße
BOA
-
hm mir fällt nur noch ein, dass du einen Hook machen könntest um die Nachrichten abzufangen
-
Du kannst ja, bevor du deinen CountDown offiziell beendest, einmal ProcessMessages() aufrufen, das räumt die Messagequeue auf. (wenn du ohne Threads arbeitest, ist es sowieso sinnvoll, das zwischendurch gelegentlich zu machen)
void countdown() { m_nomouse=true; while(!ende) { //relativ langer Berechnungsschritt ProcessMessages() } m_nomouse=false; } OnLButtonDown() //und andere Mausbutton-Ereignisse { if(m_nomouse) return; //normale Abarbeitung }
Alternativ kannst du auch deine Dialogelemente während der Arbeit auf inaktiv setzen, dann ignorieren sie Befehle von alleine.
-
Pellaeon schrieb:
Was is an Sanduhr Hackerscheiß?
Würde mich auch interessieren. Es ist doch unter Windows allgemein üblich, wenn man dem User signalisieren will, dass er Geduld haben muss, dann zeigt man die Sanduhr.
Und imho schluckt die Sanduhr Nachrichten.
Teste es doch mal, geht doch schnell.
Ganz an den Anfang der Funktion die lange dauert diese Zeile:CWaitCursor scr;
Fertig.
-
estartu_de schrieb:
Pellaeon schrieb:
Was is an Sanduhr Hackerscheiß?
Würde mich auch interessieren. Es ist doch unter Windows allgemein üblich, wenn man dem User signalisieren will, dass er Geduld haben muss, dann zeigt man die Sanduhr.
Und imho schluckt die Sanduhr Nachrichten.
Teste es doch mal, geht doch schnell.
Ganz an den Anfang der Funktion die lange dauert diese Zeile:CWaitCursor scr;
Fertig.
Aloha,
habe das mal getestet, funzt nicht. Dasselbe Prob wie vorher. Während des Countdowns drücke ich die Maustaste und nachdem der Countdown vorbei ist, werden die Klicks abgearbeitet...
Ich schau mich mal kurz bei Hooks um, die Pallaeon und CStoll erwähnen...
Noch nicht gearbeitet, aber schaun wir mal...@CStoll
ProcessMessages() gibt es nicht, meinst Du
ProcessMessageFilter() ???Grüße und Danke
BOA
-
Dann programmier den Countdown vernünftig. Damit meine ich das während der Countdown läuft schon Nachrichten verarbeitet werden.
-
............. schrieb:
Dann programmier den Countdown vernünftig. Damit meine ich das während der Countdown läuft schon Nachrichten verarbeitet werden.
Mehr solche bekloppten Antworten, bitte und der Tag ist gerettet...
-
BOA schrieb:
............. schrieb:
Dann programmier den Countdown vernünftig. Damit meine ich das während der Countdown läuft schon Nachrichten verarbeitet werden.
Mehr solche bekloppten Antworten, bitte und der Tag ist gerettet...
Immer wichtig: Leute beleidigen die einem Helfen können/wollen
-
beleidigt schrieb:
BOA schrieb:
............. schrieb:
Dann programmier den Countdown vernünftig. Damit meine ich das während der Countdown läuft schon Nachrichten verarbeitet werden.
Mehr solche bekloppten Antworten, bitte und der Tag ist gerettet...
Immer wichtig: Leute beleidigen die einem Helfen können/wollen
Kurzer Exkurs
Es sind immer Unregistrierte, die irgendwelchen Deppenantworten geben, wie mach mal so, oder so, nur nicht auf Dein Problem eingehen, welches Du hier schilderst...
Denk mal kurz drüber nach, warum das so ist...
Exkurs Ende
Grüße
BOA
-
meine Antwort war gut.
-
ProcessFilterMessage klingt gut, wenn ich das in der MSDN lese. Steht auch was von nem Hook
Das müsste doch klappen oder? Brauchst aber auch wieder ne Statusvariable, sodass nur gefiltert wird, wenn der Countdown läuft.
-
@Palleon
Ja, danke ich teste und berichte mal...
Grüße
BOA
-
Bei Lave City kann man auch nie das Fenster benutzen während er Daten aus dem Internet lädt. Das ist doch scheisse.
-
unreg schrieb:
Bei Lave City kann man auch nie das Fenster benutzen während er Daten aus dem Internet lädt. Das ist doch scheisse.
Jaja, das ganze Leben ist so Scheiße...