MessageViewer - Windows-Nachrichten abfragen
Übersicht

ChristianKBetreff: MessageViewer - Windows-Nachrichten abfragen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Coole Lib! Kann ich sehr gut gebrauchen ![]() Mfg Marek |
||
Wer lesen kann ist klar im Vorteil... |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ups, entschuldigung! Jetzt sollte es gehen. ![]() |
||
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 PuckBetreff: Fenster verkleinern |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo erstmal, ich bin gerade neu in dem Forum.
![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() Werde es gleich ausprobieren. Danke für die Mühe! |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group