|
You last visited: Today at 11:40
Advertisement
GUIGetMsg() Problem
Discussion on GUIGetMsg() Problem within the AutoIt forum part of the Coders Den category.
05/13/2010, 18:10
|
#1
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
GUIGetMsg() Problem
Hey, und schonwieder muss ich euch nerven^^
Ich mach den neuen Thread hier auf, weil es im alten niemand gelesen hätte,
weil das ja ein volkommen anderes Problem/Thema war, also nehmts mir nicht krumm^^
Mein Problem ist:
Ich hab ne GUI erstellt, ohne Rand, ohne Leiste oben, also nur ein Bild.
Natürlich kann man, da die Leiste fehlt, die GUI nicht verschieben.
Da hab ich mir gedacht, dass ich über GUIGetMsg() herausfinde, ob
man auf das Programm draufklickt und wenn man dann die Maus bewegt,
soll die GUI mit der Maus mitkommen, also als würde man es verschieben.
Doch leider hat das ganze jetzt nicht geklappt und ich wollte euch fragen,
ob das grundsätzlich überhaupt möglich ist. Wenn ja, wie?
Wenn nein, gibt es nen anderen Weg, dass ich die GUI verschieben kann?
Btw, GUIGetMsg() hab ich mir schon im AutoIt Forum durchgelesen.
Hier mal ein Bild der GUI:
Und hier der Source:
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 675, 443, 207, 167, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED)) GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\acccc.bmp", -1, -1, 676, 444) GUISetState(@SW_SHOW) HotKeySet("{ESC}", "_esc") While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_PRIMARYDOWN Then Do $ms = MouseGetPos() $Form1 = GUICreate("Form1", 675, 443, $ms[0], $ms[1], $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED)) Until $msg = $GUI_EVENT_PRIMARYUP EndIf WEnd Func _esc() GUIDelete() Exit EndFunc
|
|
|
05/13/2010, 18:15
|
#2
|
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
|
Versuch mal, anstatt die GUI neu aufzubauen (GUICreate) den Befehl WinMove... Hab's jetzt net getestet, könnte aber funktionieren
PHP Code:
WinMove($Form1,"",$ms[0],$ms[1])
|
|
|
05/13/2010, 21:58
|
#3
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
Ok bewegen klappt jetzt, aber der hört nichmehr auf oO
|
|
|
05/13/2010, 22:55
|
#4
|
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
|
Quote:
Originally Posted by FooFightah
Ok bewegen klappt jetzt, aber der hört nichmehr auf oO
|
Hab ich bemerkt, aber momentan noch nicht weiter verfolgt... kannst ja mal 'n wenig rumprobieren, ich schau's mir bei gelegenheit evtl. nochmal an
|
|
|
05/13/2010, 22:59
|
#5
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
Ja, nur mir fällt kein anderer Weg ein außer Do-Until oO
OK, hab jetzt mehrere Wege ausprobiert.
Mit If und ElseIf kann man immerhin auf das programm klicken, die Maus wegbewegen und wenn man die
Maus wieder loslässt, springt die GUI da hin, wo man die Maus dann hat, aber mitbewegen lässt sie sich nicht.
Ich krig es ums Verrecken nicht hin.
Mittlerweile hab ichs sogar schon so gemacht >.<
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 675, 443, 207, 167, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED)) GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\acccc.bmp", -1, -1, 676, 444) GUISetState(@SW_SHOW)
HotKeySet("{ESC}", "_esc")
While 1 $msg = GUIGetMsg() $ms = MouseGetPos() If $msg = $GUI_EVENT_PRIMARYDOWN Then Do $ms2 = MouseGetPos() WinMove($Form1,"",$ms2[0],$ms2[1]) $a = 1 Until Not $msg = $GUI_EVENT_PRIMARYDOWN ElseIf $msg = $GUI_EVENT_PRIMARYUP Then Do WinMove($Form1, "", $ms[0], $ms[1]) $a += 1 Until $a > 3 EndIf WEnd Func _esc() GUIDelete() Exit EndFunc
|
|
|
05/14/2010, 15:00
|
#6
|
elite*gold: 237
Join Date: Sep 2008
Posts: 4,476
Received Thanks: 4,587
|
So funktioniert es:
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 675, 443, 207, 167, $WS_POPUP, $WS_EX_TOPMOST) ; BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED) GUICtrlCreatePic("e:\Unbenannt.jpg", -1, -1, 676, 444) GUISetState(@SW_SHOW) HotKeySet("{ESC}", "_esc") While 1 Switch GUIGetMsg() Case $GUI_EVENT_PRIMARYDOWN Do $ms2 = MouseGetPos() WinMove($Form1,"",$ms2[0],$ms2[1]) $a = 1 Until GUIGetMsg() = $GUI_EVENT_PRIMARYUP EndSwitch WEnd Func _esc() GUIDelete() Exit EndFunc
Aber es gibt bei Controls den Stil $GUI_WS_EX_PARENTDRAG
"Erlaubt es dem Label- oder Bild-Control, wie eine Titelleiste angesehen zu werden, um das ganze „parent“-Fenster zu ziehen."
Also zB so:
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 675, 443, 207, 167, $WS_POPUP, $WS_EX_TOPMOST) ; BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED) GUICtrlCreatePic("e:\Unbenannt.jpg", 0, 0, 676, 444, -1, $GUI_WS_EX_PARENTDRAG) GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
|
|
|
05/14/2010, 15:16
|
#7
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
Quote:
Originally Posted by FichteFoll
So funktioniert es:
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 675, 443, 207, 167, $WS_POPUP, $WS_EX_TOPMOST) ; BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED) GUICtrlCreatePic("e:\Unbenannt.jpg", -1, -1, 676, 444) GUISetState(@SW_SHOW)
HotKeySet("{ESC}", "_esc")
While 1 Switch GUIGetMsg() Case $GUI_EVENT_PRIMARYDOWN Do $ms2 = MouseGetPos() WinMove($Form1,"",$ms2[0],$ms2[1]) $a = 1 Until GUIGetMsg() = $GUI_EVENT_PRIMARYUP EndSwitch WEnd
Func _esc() GUIDelete() Exit EndFunc
Aber es gibt bei Controls den Stil $GUI_WS_EX_PARENTDRAG
"Erlaubt es dem Label- oder Bild-Control, wie eine Titelleiste angesehen zu werden, um das ganze „parent“-Fenster zu ziehen."
Also zB so:
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 675, 443, 207, 167, $WS_POPUP, $WS_EX_TOPMOST) ; BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED) GUICtrlCreatePic("e:\Unbenannt.jpg", 0, 0, 676, 444, -1, $GUI_WS_EX_PARENTDRAG) GUISetState(@SW_SHOW)
While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
|
Ich....liebe dich *-*
Du hast mir den Tag gerettet^^
€dit: Wenn du mir jetzt noch sagen kannst, wie ich es hinbekomme, dass die GUI nicht 4Eckig ist, sondern wie irgendein Bild aussieht? Also wie zb beim S4 Launcher^^
|
|
|
05/14/2010, 15:59
|
#8
|
elite*gold: 964
Join Date: Mar 2008
Posts: 2,629
Received Thanks: 1,636
|
Was versucht du hier den Bitte zu Progen? Ein Fake Launcher?
Für was soll das gut sein?
Greatz Benhero
|
|
|
05/14/2010, 16:15
|
#9
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
Nope, nur ich versuche in Sachen GUI-Erstellung ne Menge dazuzulernen, weil
ich die GUI so hinbekommen will, wie ich es gerne hätte. Und nachdem ich so Sachen
wie zb das Interface/GUI von Avast gesehen hab, wollt ich unbedingt auchmal was
Eigenes in der Richtung machen. Keine Angst, wozu solte ich nen Fake-Launcher machen? oO
|
|
|
05/14/2010, 16:37
|
#10
|
elite*gold: 964
Join Date: Mar 2008
Posts: 2,629
Received Thanks: 1,636
|
... es gibt da so einige möglichkeiten.. egla
@b2t
Würde es reichen die Gui Rund zu machen?
Oder muss es mehr sein?
Greatz Benehro
|
|
|
05/14/2010, 16:48
|
#11
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
Rund ist meinetwegen auch ok, hauptsache was neues
Achja und noch eine Frage, wie krig ich es hin, dass ich sozusagen selbstkreierte Buttons benutzen kann?
Also angenommen ich füg ein Bild in die GUI ein und dieses Bild soll ein Button sein.
In meiner GUI soll der "selbstkreierte Button" das schwarz umrandete rote Kreuz sein.
Wenn man draufkickt soll sich das Programm schließen. Habs mit GUISetOnEvent und GUICtrlSetOnEvent versucht.
Ich hab das rote Kreuz auch extra als eigenes Bild mithinzugefügt, damit man dem ne
eigene Funktion geben kann, aber leider hat bis jetzt nichts davon geklappt, hoffe ihr könnt mir helfen.
Hier mal mein Source, falls ihr den braucht.
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 624, 442, 207, 167, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED)) $pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\ddugoöud.bmp", -1, -1, 625, 443, -1, $GUI_WS_EX_PARENTDRAG) $pic2 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\piece.bmp", -1, -1, 79, 84, -1, $GUI_WS_EX_PARENTDRAG) GUICtrlSetOnEvent($pic2, "_esc") GUISetState(@SW_SHOW)
HotKeySet("{ESC}", "_esc")
While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
Func _esc() GUIDelete() Exit EndFunc
|
|
|
05/14/2010, 16:52
|
#12
|
elite*gold: 964
Join Date: Mar 2008
Posts: 2,629
Received Thanks: 1,636
|
Machs so dann sollte es gehen:
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 624, 442, 207, 167, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED)) $pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\ddugoöud.bmp", -1, -1, 625, 443, -1, $GUI_WS_EX_PARENTDRAG) $pic2 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\piece.bmp", -1, -1, 79, 84, -1, $GUI_WS_EX_PARENTDRAG) GUISetState(@SW_SHOW)
HotKeySet("{ESC}", "_esc")
While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $pic2 Exit EndSwitch WEnd
Func _esc() GUIDelete() Exit EndFunc
Greatz Benhero
|
|
|
05/14/2010, 16:58
|
#13
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
Nope, funktioniert leider nicht.
Und wie krig ich die GUI jetzt rund?^^
|
|
|
05/14/2010, 17:04
|
#14
|
elite*gold: 964
Join Date: Mar 2008
Posts: 2,629
Received Thanks: 1,636
|
So sollte es gehen: (Gleich mal bissel verändert und gekürzt.
PHP Code:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 624, 442, 207, 167, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED)) $pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\ddugoöud.bmp", -1, -1, 625, 443, -1, $GUI_WS_EX_PARENTDRAG) $pic2 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Marius\Eigene Dateien\Eigene Bilder\piece.bmp", -1, -1, 79, 84) GUISetState(@SW_SHOW)
HotKeySet("{ESC}", "_esc")
While 1 $k = GUIGetMsg() If $k = $GUI_EVENT_CLOSE Then Exit If $k = $pic2 Then Exit WEnd
Func _esc() Exit EndFunc
Greatz Benhero
Wegen Gui Round machen suche ich noch was... gab da so ein gutes Include was es machte..
|
|
|
05/14/2010, 17:10
|
#15
|
elite*gold: 20
Join Date: Dec 2009
Posts: 1,850
Received Thanks: 484
|
OK, dann such du mal^^
Aber leider klappts immernoch nicht. Außer die Switch Combi in ne If Combo zu ändern haste ja auch nix gemacht
Ich hab irgendwie das Gefühl, dass man GUIGetMsg, $pic2 und $GUI_EVENT_PRIMARYDOWN/$GUI_EVENT_PRIMARYUP
zusammenbringen muss, aber wie?
|
|
|
Similar Threads
|
GuiGetMsg() registriert nicht alle Ereignisse
04/20/2010 - AutoIt - 10 Replies
Habe gerade das Problem das mein Bot eigenartigerweise auf einmal bei 6 Inputfelder nicht nicht mehr richtig auf seine Ereignisse reagiert. Das bedeutet manchmal erkennt er das Ereignis auf eine Veränderung im Inputfeld manchmal nicht.
Ich lese momentan die GUIGetMsg() aus und die bekommt leider nicht alles mit, alle anderen GUIElemente funktionieren einwandfrei.
Hier ein Auszug (vielleicht burnt mir heut schon zu sehr der Kopf und bin einfach blind)
...
$Input1 = GUICtrlCreateInput("0",...
|
[Problem] Problem with server starting - cannot find quest index for PaxHeader
12/22/2009 - Metin2 Private Server - 1 Replies
Hello!
I have this same problem as here when i'm starting my server:
http://www.elitepvpers.com/forum/metin2-pserver-di scussions-questions/307143-metin2-serverfiles-ques t-index-fehler.html
But I didn't know the answer.. how to repair this?
Greetings
|
All times are GMT +2. The time now is 11:40.
|
|