Abfrage des Mausklicks
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: frage nebenbei
achte auf den Unterstrich nach dem Befehlswort - das ist kein PB-Befehl, das ist ein API-Aufruf.Dieter Platzke hat geschrieben:diese geschichte GetAsyncKeyState_(#vk_lbutton)
hab ich noch nie in der Doku gefunden.
gibt es von diesen dingern die nicht in der Doku stehen noch mehr?
eine menge API-funktionen und -Konstanten sind in PB eingebunden und benutzbar,
aber nicht extra dokumentiert, weil
A) sie von Microsoft ausreichend dokumentiert wurden, zu finden in der MSDN
http://www.microsoft.com/germany/msdn/
http://www.microsoft.com/germany/msdn/l ... fault.mspx
B) die gesamtmenge so umfangreich ist, dass es den Rahmen der PB-Help sprengen würde.
mit GetAsyncKeyState_(#vk_lbutton) benutzt du also keine PB-Abfrage, sondern sagst PB: "is scho recht, ich frag Windows direkt"
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Und zur Demoversion kommt noch hinzu, das man die API nicht direkt so
nutzen kann wie in der Vollversion.
Dazu muss man wissen, welche API-Befehle zu welcher DLL gehören.
Weiteres darüber ist hier und da im Pureboard als auch im Archiv verstreut schon geschrieben worden.
Übrigens, ich habe beim obigen Beispiel das GetGetAsyncKeyState_(#vk_lbutton) rausgenommen, da es auch über Windowsevents
mit hilfe von Windowskonstanten wie #WM_LBUTTONDOWN abgefragt
werden kann.
Ich bin noch am ausprobieren, wie man das mit den Gummiband unter Windows machen kann.
Grüße Falko
nutzen kann wie in der Vollversion.
Dazu muss man wissen, welche API-Befehle zu welcher DLL gehören.
Weiteres darüber ist hier und da im Pureboard als auch im Archiv verstreut schon geschrieben worden.
Übrigens, ich habe beim obigen Beispiel das GetGetAsyncKeyState_(#vk_lbutton) rausgenommen, da es auch über Windowsevents
mit hilfe von Windowskonstanten wie #WM_LBUTTONDOWN abgefragt
werden kann.
Ich bin noch am ausprobieren, wie man das mit den Gummiband unter Windows machen kann.
Grüße Falko
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
oops.. Demo? hab ich da was überlesen?
> Gummiband
den vorherigen zustand des zeichenbereichs in ein back-image.
dieses back in das anzeige-image kopieren, und die linie draufzeichnen.
damit ist die linie "beweglich", ohne dass man jedes element einzeln neuzeichnen muss.
erst wenn die linie wirklich gesetzt wird, in die Liste aufnehmen.
> Gummiband
den vorherigen zustand des zeichenbereichs in ein back-image.
dieses back in das anzeige-image kopieren, und die linie draufzeichnen.
damit ist die linie "beweglich", ohne dass man jedes element einzeln neuzeichnen muss.
erst wenn die linie wirklich gesetzt wird, in die Liste aufnehmen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Betrifft nur dieses hier, wenn Brügge helfen will, wird es in WindowsAPI
aufwändiger:
http://www.purebasic.fr/german/viewtopi ... 055#102055
Das mit dem Gummiband dachte ich mir schon.
Dazu müsste man wohl noch ein #WM_MOUSEMOVE mittels If im
Case #WM_LBUTTONDOWN prüfen und dort die Kopie nutzen.
Vielleicht über API mit Hilfe von GetClientRect(hwnd,rect) und SetBkMode(hdc,#TRANSPARENT). Wird noch etwas dauern, bis ich damit soweit bin.
Grüße Falko
aufwändiger:
http://www.purebasic.fr/german/viewtopi ... 055#102055
Das mit dem Gummiband dachte ich mir schon.
Dazu müsste man wohl noch ein #WM_MOUSEMOVE mittels If im
Case #WM_LBUTTONDOWN prüfen und dort die Kopie nutzen.
Vielleicht über API mit Hilfe von GetClientRect(hwnd,rect) und SetBkMode(hdc,#TRANSPARENT). Wird noch etwas dauern, bis ich damit soweit bin.
Grüße Falko
ich programmiere purebasic erst seid einen monat also jetzt nicht lachen ^^
also: was für ein gummiband?? und warum ist der screenmodus schlecht? ich programmiere nur so und bin bis jetzt super damit zurecht gekommen.
achja ich verstehe auch nicht was ihr da sonst so hingeschrieben habt
naja also erklärt mal kurz was das programm machen soll und ich versuche es dann mal zu programmieren ^^
hab nix zu tun
MFG Brügge
also: was für ein gummiband?? und warum ist der screenmodus schlecht? ich programmiere nur so und bin bis jetzt super damit zurecht gekommen.
achja ich verstehe auch nicht was ihr da sonst so hingeschrieben habt

naja also erklärt mal kurz was das programm machen soll und ich versuche es dann mal zu programmieren ^^
hab nix zu tun

MFG Brügge
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> warum ist der screenmodus schlecht?
nicht schlecht, nur für applications nicht so geeignet.
er stellt dir keine gadgets zur verfügung oder menus.
auch ein WindowedScreen, wo man theoretisch buttons daneben packen kann,
macht gerne mal probleme beim resizen...
> was für ein gummiband??
die linie, die nach dem ersten click am mauszeiger hängt,
bevor sie mit dem zweiten click endgültig gezeichnet wird...
> was ihr da sonst so hingeschrieben habt
- abfrage der mousebuttons im fenster
- pro&contra WinAPI-nutzung
nicht schlecht, nur für applications nicht so geeignet.
er stellt dir keine gadgets zur verfügung oder menus.
auch ein WindowedScreen, wo man theoretisch buttons daneben packen kann,
macht gerne mal probleme beim resizen...
> was für ein gummiband??
die linie, die nach dem ersten click am mauszeiger hängt,
bevor sie mit dem zweiten click endgültig gezeichnet wird...
> was ihr da sonst so hingeschrieben habt
- abfrage der mousebuttons im fenster
- pro&contra WinAPI-nutzung
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
also mit dem menü:
an einer seite kann man doch ein menü reinprogrammieren...
dann das mit dem gummiband:
überhaupt kein problem. die einzelnen linien werden in einem array gespeichert.
beispiel:
dim linex.f(1000)
dim liney.f(1000)
und immer wenn man eine neue zeichnet wird es dort reingespeichert.
also ich finde das einfach und das problem mit der Maus habe ich schon behoben (siehe seite 1)
an einer seite kann man doch ein menü reinprogrammieren...
dann das mit dem gummiband:
überhaupt kein problem. die einzelnen linien werden in einem array gespeichert.
beispiel:
dim linex.f(1000)
dim liney.f(1000)
und immer wenn man eine neue zeichnet wird es dort reingespeichert.
also ich finde das einfach und das problem mit der Maus habe ich schon behoben (siehe seite 1)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
natürlich kann man auch auf nem screen menus und buttons programmieren...
aber man müsste sie komplett selbst erstellen, und das ganze wäre ne vollbild-anwendung,
und vollbild-anwendungen waren schon zu DOS-zeiten verpönt.
> überhaupt kein problem. die einzelnen linien werden in einem array gespeichert.
ich würde eher ne liste nehmen.
> das problem mit der Maus habe ich schon behoben
nur für screen, nicht für fenster.
aber lies dir nochmal die komplette problematik durch.
es geht eben darum keinen screen zu verwenden.
aber man müsste sie komplett selbst erstellen, und das ganze wäre ne vollbild-anwendung,
und vollbild-anwendungen waren schon zu DOS-zeiten verpönt.
> überhaupt kein problem. die einzelnen linien werden in einem array gespeichert.
ich würde eher ne liste nehmen.
> das problem mit der Maus habe ich schon behoben
nur für screen, nicht für fenster.
aber lies dir nochmal die komplette problematik durch.
es geht eben darum keinen screen zu verwenden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
> das problem mit der Maus habe ich schon behoben
nur für screen, nicht für fenster.
ich kann nur screen programmieren (habe mich noch nicht mit den fenstern beschäftigt (finde screens in ordnung).
ich würde eher ne liste nehmen.
ja ne liste ist gut ich kann allerdings mit PB nur array machen KA wie listen gehen.
man kann ja auch einen großen arrey nehmen
dim line(1000,2)
ist auch wie ne liste ^^
naja also Dieter ich kann dir nur bei screens helfen
musst du wissen wie dein programm werden soll.
MFG
nur für screen, nicht für fenster.
ich kann nur screen programmieren (habe mich noch nicht mit den fenstern beschäftigt (finde screens in ordnung).
ich würde eher ne liste nehmen.
ja ne liste ist gut ich kann allerdings mit PB nur array machen KA wie listen gehen.
man kann ja auch einen großen arrey nehmen
dim line(1000,2)
ist auch wie ne liste ^^
naja also Dieter ich kann dir nur bei screens helfen


MFG