Deutsch
Forum

Dialog, Static und die Maus

 

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 !!!
KompilierenMarkierenSeparieren
declare 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)

3 kB
Hochgeladen:10.06.2006
Ladeanzahl280
Herunterladen
5 kB
Hochgeladen:10.06.2006
Ladeanzahl294
Herunterladen
 
XProfan 9.1; XP SP2; FF; Editpad
10.06.2006  
 




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.
 
10.06.2006  
 




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! )
 
XProfan 9.1; XP SP2; FF; Editpad
10.06.2006  
 



Also, die schöne Grafik...

Nein, funktioniert für mich einwandfrei.
 
10.06.2006  
 




Rolf
Koch
Butterweich und direkt funktioniert es
 
10.06.2006  
 




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?
 
10.06.2006  
 




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.
 
XProfan 9.1; XP SP2; FF; Editpad
10.06.2006  
 




Rolf
Koch
Tjo, dann solltest Du Roc bemühen, da ist Trackbar u.v.m. drin - sag ich doch immer!!!
 
10.06.2006  
 




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.
 
XProfan 9.1; XP SP2; FF; Editpad
10.06.2006  
 




Rolf
Koch
Erstelle einen Code und siehe da, alles drin:
Trackpos setzen und auslesen ;)
 
10.06.2006  
 




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
 
XProfan 9.1; XP SP2; FF; Editpad
10.06.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.616 Betrachtungen

Unbenanntvor 0 min.
Rainer Hoefs31.05.2019
Peter Max Müller01.11.2017
E.T.22.03.2013
Michael Borowiak29.10.2012
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie