MessageViewer - Windows-Nachrichten abfragen

Übersicht BlitzBasic DLLs und Userlibs

Neue Antwort erstellen

 

ChristianK

Betreff: MessageViewer - Windows-Nachrichten abfragen

BeitragSo, Okt 28, 2007 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Was macht der MessageViewer?

Er ermöglicht es, Windows-Nachrichten, die das Fenster einer Blitz3D-Anwendung erreichen, abzufragen. So kann man beispielsweise herausfinden, ob auf das Schließen-X geklickt wurde, ob der Benutzer das Fenster bewegt hat, etc.

Wer braucht diese DLL?

Sie ist vor allem für diejenigen gedacht, die mit Hilfe der WinAPI neue Features zu Blitz3D hinzufügen wollen, und auf die Windows-Nachrichtenverarbeitung angewiesen sind. Damit nicht für jedes dieser Features eine neue DLL geschrieben werden muss, kann man auf diese hier zurückgreifen.

Bisher sind noch nicht viele Nachrichten implementiert. Wer noch weitere benötigt, kann sich hier gerne melden und Vorschläge machen. Ich werde den MessageViewer dann so schnell wie möglich erweitern.

Download

Das Zip-Archiv enthält die DLL, Decls und eine readme.txt, in der die Funktionen kurz erklärt werden.
Jetzt herunterladen

Beispiel

Code: [AUSKLAPPEN]
Local hwnd = SystemProperty( "AppHWND" )

MV_Start( hwnd ) ; Startet den MessageViewer

While Not KeyDown( 1 )
   
   If MV_WindowClose( ) ; Es wurde auf das Schließen-X geklickt
      DebugLog "Das Programm wird jetzt beendet [Taste drücken]"
      WaitKey
      Exit
   End If
   
   If MV_WindowMove( ) ; Das Fenster wurde bewegt
      DebugLog "Fenster wurde bewegt"
   End If
   
   If MV_WindowMinimize( ) ; Das Fenster wurde minimiert
      DebugLog "Fenster wurde minimiert"
   End If
   
Wend

MV_Stop( ) ; Stoppt den MessageViewer

End
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
  • Zuletzt bearbeitet von ChristianK am So, Feb 27, 2011 13:39, insgesamt 4-mal bearbeitet
 

Marek

BeitragSo, Okt 28, 2007 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Coole Lib! Kann ich sehr gut gebrauchen Wink Ist es auch möglich, die Nachrichten nicht nur abzufangen, sondern auch welche zu senden?
Mfg Marek
Wer lesen kann ist klar im Vorteil...
 

ChristianK

BeitragSo, Okt 28, 2007 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum willst du eine Nachricht senden? Nur generell oder hast du was bestimmtes damit vor?
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Marek

BeitragSo, Okt 28, 2007 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versuche schon seit längerem ein Fenster ohne Rand zu erstellen, das den ganzen Bildschirm einnimmt...
Ich will aber kein Fullscreen...
Ich weiß das es deffinitiv geht (siehe Myst 3, das Spiel läuft im Fenstermodus, aber der ganze Bildschirm wird bedeckt).
Von diesem Fenster will ich dann immer nur bestimmte Teile angezwigt haben (Fenster im Fenster). Ich denke man sieht worauf das hinausläuft^^
~Edit~
Das mit dem ohne Rand und das teilweise anzeigen eines Fensters geht per Winapi, das hab ichschon seit längerem. Es geht reineweg darum die ClientArea so groß zu machen, dass sie den ganzen Bildschirm einnimmt.
Wer lesen kann ist klar im Vorteil...
 

ChristianK

BeitragSo, Nov 04, 2007 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Neue Funktionen hinzugefügt!

Es ist jetzt möglich, Nachrichten zwischen zwei Programmen zu versenden. Ohne zusätzliche Dateien oder Netzwerkfunktionen. Bisher werden zwar nur Integer unterstützt, aber das sollte für den Anfang reichen.

Die neuen Funktionen heißen:
MV_CreateMessage, MV_SendInteger und MV_ReceiveInteger. In der readme.txt befinden sich eine genauere Beschreibung und ein Beispiel.
Der Downloadlink bleibt der gleiche.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Marek

BeitragMo, Nov 05, 2007 0:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Readme-Datei:
Code: [AUSKLAPPEN]
----------------------------------------

MessageViewer
Copyright © Christian Klaussner, 2007

----------------------------------------

MV_Start( hwnd )
   Startet den MessageViewer für das angegebene Fenster.
   Achtung: Es kann immer nur ein Fenster gleichzeitig überwacht werden.

MV_Stop( hwnd )
   Schaltet den MessageViewer aus. Diese Funktion muss unbedingt aufgerufen
   werden, bevor das Programm beendet wird.

MV_WindowClose( )
   Gibt True zurück, wenn der Anwender auf das X geklickt hat, um das Fenster
   zu schließen.

MV_WindowMove( )
   Gibt True zurück, wenn das Fenster bewegt wurde.

MV_MenuAction( )
   Gibt True zurück, wenn der Benutzer auf ein Menü geklickt hat.
   Der Identifier des Menüs kann mit MV_ActionIdentifier( ) ermittelt werden.

MV_ActionIdentifier( )
   Gibt den Identifier des Menüs zurück, auf das geklickt wurde.

----------------------------------------

Wichtig:

Der Rückgabewert aller Funktionen ( ausser MV_Start und MV_Stop ) muss in einer
Variable gespeichert werden, wenn er mehrmals benötigt wird.

   Richtig:
   Local windowclose% = MV_WindowClose( )
   If windowclose = 0 Then ...
   If windowclose = 1 Then ...

   Falsch:
   If MV_WindowClose( ) = 0 Then ...
   If MV_WindowClose( ) = 1 Then ...

----------------------------------------


Sicher das der Downloadlink derselbe ist?
Wer lesen kann ist klar im Vorteil...
 

ChristianK

BeitragDo, Nov 08, 2007 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ups, entschuldigung! Jetzt sollte es gehen. Embarassed
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Pitje Puck

Betreff: Fenster verkleinern

BeitragMi, Feb 20, 2008 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo erstmal, ich bin gerade neu in dem Forum.

Arrow ChristianK
Ich muss den Thread noch mal nen bisschen pushen, da ich genau so was suche wie deine DLL . Nicht so protzig wie die BlitzSys.dll, sondern so schön klein wie deine messageviewer.dll. Vielleicht kann ich dich ja anregen noch die Möglichkeit das "in die Taskleiste verschieben des Fensters"-Abfangen einzubauen. Sprich der Klick auf die "-" Taste.
mfg, Pitje
 

ChristianK

BeitragMi, Feb 20, 2008 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Pitje,
danke für den Vorschlag. Ich hab die Funktion MV_WindowMinimize hinzugefügt. Weiteres dazu findest du in der readme.txt und in sample2.bb Smile
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Pitje Puck

BeitragDo, Feb 21, 2008 12:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Surprised WOW Christian. Ging schnell. Das mit dem "anregen" hat ja richtig gut geklappt.
Werde es gleich ausprobieren.
Danke für die Mühe!

Der Eisvogel

BeitragFr, Mai 29, 2009 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs denn mit einer Funktion, bei der man eine Nachricht angeben kann, die man abfragen will?
Das wär das was ich im Moment brauche. Also so z.B.:
MV_WindowMessage(Msg)

EDIT: Und falls das Nicht möglich ist, würde ich mich auch mit allen Maus-Nachrichten zurecht finden, und wenn das nicht möglich ist, dann hab ich halt Pech.

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group