Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249151 (10587)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Fenstergrößenänderung feststellen
Werner Wesseler
| Datum:24.02.02 21:05 |
Guten Tag. Mein Programm soll permanent feststellen, ob der Anwender gerade dabei ist, mein Hauptfenster in der Größe zu verändern. Wie geht das denn? Im Augenblick kann ich nur feststellen, ob die Fenstergröße sich verändert hat, aber nicht, ob der Anwender gerade dabei ist. Ich wäre für Hilfe dankbar. Schönen Abend
Uwe Beisler
| Datum:24.02.02 23:50 (uwe.beisler@t-online.de) |
Hallo, im Prinzip kannst Du fast alles Mitkriegen. Es ist nur eine Frage des Aufwands. Wenn Du mit GetMessage an stelle von WaitKey arbeitest hast du das gleiche Problem wie im Internet - nicht in Informationen zu ertrinken oder auch nur die Spreu vom Weizen zu trennen. Den Windows ist sehr Message-intensiv. Für die wichtigsten Messages kannst Du mit %UMessage abrbeiten. Unten habe ich Dir einen kleinen Prog.-Ausschnitt um das Prinzip zu zeigen (sorry wenn ich Dir jetzt keine fertige Lösung präsentiere - stecke selbst noch in den Anfängerschuhen). Ich glaube wenn Du WM-COMMAND und WM_SYSCOMMAND (siehe Win32.hlp - gibts im Internet einfach z.B. über google.de suchen) überwachst kommst Du hin. Du kannst natürlich auch Maus und Tastatur direkt überwachen (WM_ steht für Fenster) aber das wird gleich viel aufwendiger, weil eine Notify-Message z.B. NM_CLICK allein noch nicht viel sagt mußt Du auch wissen wohin geklickt wurde. Es ist viel einfache auf eine entsprechnde Nachricht vom Fenter zu warten. declare Hit# struct Hit=X&,Y&,Flags&,Item& dim Hit#,Hit declare NMHDR# struct NMHDR = hwndFrom&,idFrom&,code& dim NMHDR#,NMHDR ... GetMessage Message%=%Message '*** LParam&=&LParam Hit#.x&=%MOUSEX Hit#.y&=%MOUSEY NotifyCode%=%NotifyCode ' NM_OUTOFMEMORY = -1 ' NM_CLICK = -2 ' NM_DBLCLK = -3 ' NM_RETURN = -4 ' NM_RCLICK = -5 ' NM_RDBLCLK = -6 ' NM_SETFOCUS = -7 ' NM_KILLFOCUS = -8 ' NM_STARTWAIT = -9 ' NM_ENDWAIT = -10 ' NM_BTNCLK = -10 if equ(%GetFocus,TreeView&) Hit_item& = sendmessage(TreeView&,4369,0,Hit#)'--TVM_HITTEST if equ(Message%,78) NMHDR#=LParam& ... EndIF case %umessage=16:break '------Fenster schließen IF MenuItem(101) TreeExpand(TreeView&,Root&[0]) TreeExpand(TreeView&,Root&[2]) ElseIF MenuItem(102) TreeColapse(TreeView&,Root&[0]) TreeColapse(TreeView&,Root&[2]) ElseIF MenuItem(103) _ende% = 1 EndIF EndWhile Es ist zwar um einiges Aufwendiger so zu arbeiten, es bringt aber eben auch viel mehr Möglichkeiten. Der Code passt nicht ganz zu Deinem Problem sondern zeigt nur das Prinzip. Gruß Uwe P.S. *** hier werden die Werte übrigens gesichert, da die sich ja während Deiner Auswertung und Verarbeitung ändern können
Werner
| Datum: 25.02.02 13:06 |
Guten Tag. Geht das denn nicht ohne eine eigene Message Programmierung aufzubauen? Diese Technik beinhaltet doch mehrere Nachteile. Kennt niemand die geeignete Message für das oben beschriebene Problem? Schönen Tag

| Zurück zur Übersicht