| |
|
|
Clemens Meier | In einem meiner Dialoge sollen anstatt direkter Eingaben mittels Zahlen, auch Eingaben über sogenannte Schieber möglich sein. Es funktioniert zwar, aber es reagiert trotzdem etwas seltsam. Anscheinend reagiert die Maus nicht beim ersten, sondern erst beim zweiten Klick. Und bei einem Klick auf den Hintergrund scheint er gar nicht zu reagieren. Vielleicht kann man mir erzählen, warum das so ist und wie man das umgehen kann. @iF: Ja, ich habe gesucht, wie ein Depp !!! KompilierenMarkierenSeparierendeclare dlg&,scrollx&,scrolly&
declare static1&,static2&
declare bild1&,bild2&
declare ende%
declare neumousex&
declare zeigerx%
Declare B#
struct POINT = x&, y&
Dim B#,16
Def Getcursorpos(1) !"USER32","GetCursorPos"
Def Getasynckeystate(1) !"User32","GetAsyncKeyState"
Def Getwindowrect(2) !"USER32", "GetWindowRect"
zeigerx% = 41
cls
Öffne einen Dialog
dlg& = create("dialog",%hWnd,"Scrollbalken",50,50,300,300)
static1&=@Control("STATIC","",$5400010E,50,50,200,8,dlg&,$7918,%Hinstance)
bild1& = create("hpic",-1,"balken.bmp")
Bild dem Static zuweisen
sendmessage(static1&,$172,0,bild1&)
static2&=@Control("STATIC","",$5400010E,zeigerx%,60,18,37,dlg&,$7917,%Hinstance)
bild2& = create("hpic",-1,"zeiger.bmp")
sendmessage(static2&,$172,0,bild2&)
whilenot ende%
waitinput
if (%key = 2)
ende% = 1
elseif mouse(41,45 - 259,100)
zeigerbewegen()
endif
wend
DeleteObject bild1&
DeleteObject bild2&
destroyWindow(dlg&)
end
PROC zeigerbewegen
while Getasynckeystate(1)
neuMousex& = MouseX()
Vorsicht, in neuMousex& steckt die absolute Position von der Mouse, brauche aber die relative
Getwindowrect(dlg&,B#)
neuMousex& = neuMousex& - Long(B#,0)
if (neuMousex&>49) AND (neuMousex&<251)
SetWindowPos static2&=neuMousex&-9,60 - 18,37
endif
sleep 10
wend
ENDPROC
Proc MouseX
Declare Point#, X&
Dim Point#, Point
GetCursorPos(Point#)
X& = Point#.X&
Dispose Point#
Return X&
EndProc
Proc MouseY
Declare Point#, Y&
Dim Point#, Point
GetCursorPos(Point#)
Y& = Point#.Y&
Dispose Point#
Return Y&
EndProc
(Bilder habe ich auch hochgeladen, damit man es schneller ausprobieren kann) |
|
|
| |
|
|
|
Frank Abbing | Hi.
Also reagiert für mich normal. Bei mir funktionierte es ohne doppelte Klicks. Mal abgesehen davon, dass es grafisch nicht viel hermacht. |
|
|
| |
|
|
|
Clemens Meier | Was heißt hier grafisch? Ist nur ein Test. Wußte nicht, dass ich für Tests einen Graphiker anstellen muss.
Bei dir keinen doppelten Klick? Seltsam. Bei mir immer dann, wenn es um Static-Felder geht. Habe das auch wo anders festgestellt, da ich dort aber auf den Static verzichten konnte, habe ich das umgangen. Doch hier braucht man das Static, wegen des verschiebaren Bitmaps in einem Dialog.
Nicht dass wir uns missverstehen, ich spreche nicht von einem Doppelklick, sondern dass die Abfrage vom mouse() beim allerersten Mal nicht reagiert. Erst beim zweiten und folgenden. Danach immer sofort. Nur beim allerersten mal nach dem Starten des Dialogs.
Scheint dann an meinem System zu liegen, warum auch immer. Vielleicht testen noch weitere, mich würde es interessieren, ob es überall normal funktioniert (und bitte, die Graphik steht nicht zur Diskussion! ) |
|
|
| |
|
|
|
| Also, die schöne Grafik...
Nein, funktioniert für mich einwandfrei. |
|
|
| |
|
|
|
Rolf Koch | Butterweich und direkt funktioniert es |
|
|
| |
|
|
|
Frank Abbing | [quote:f826b99c7f] Was heißt hier grafisch? Ist nur ein Test. Wußte nicht, dass ich für Tests einen Graphiker anstellen muss. [/quote:f826b99c7f] War ja nur eine Anmerkung. Was spricht eigentlich gegen die Verwendung der systemen Trackbar? |
|
|
| |
|
|
|
Jörg Sellmeyer | Bei mir funktionierts ohne Probleme. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 10.06.2006 ▲ |
|
|
|
|
Clemens Meier | Mmh, überall funktioniert es, außer bei mir. Ich glaube, ich bemühe mal eine Müllpresse und entsorge mein System. Offenbar hat es so manche Macke weg.
Trackbar ... Würde ich gerne mal testen. Finde aber keine Hinweise dazu. Weder wie man ein Trackbar erstellt, welche Eigenschaften man ihm mitgeben kann oder ähnliches. Oder hat das Ding noch einen anderen Namen. Ich dachte immer Trackbars seien handgestrickt. Außerdem wollte ich ja was eigenes kreieren. War deshalb noch auf der Suche, wie man ein Bitmap auf einem Dialog durchsichtig machen kann (in der Hoffnung, dass das Static darunter auch durchsichtig ist). Dann könnte man geile Dinger bauen. |
|
|
| |
|
|
|
Rolf Koch | Tjo, dann solltest Du Roc bemühen, da ist Trackbar u.v.m. drin - sag ich doch immer!!! |
|
|
| |
|
|
|
Clemens Meier | Ich habe mal eben den Roc bemüht und siehe da, Trackbar ist drin. Aber leider habe ich keine Optionen gefunden. Auch in der User.inc nicht. Gibt es dazu welche bzw. wo kann ich Optionen zur Trackbar finden. |
|
|
| |
|
|
|
Rolf Koch | Erstelle einen Code und siehe da, alles drin: Trackpos setzen und auslesen ;) |
|
|
| |
|
|
|
Clemens Meier | Das meinte ich nicht, das sieht man ja im Quelltext. Was man da aber nicht sieht, ob man eventuell das Ding farbig machen kann, den Schieber verkleinern oder ganz verändern kann etc. Das meinte ich unter Optionen, das andere sind für mich Funktionen |
|
|
| |
|
|