LabVIEWForum.de
Mauszeiger mit user32.dll erstellen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Mauszeiger mit user32.dll erstellen (/Thread-Mauszeiger-mit-user32-dll-erstellen)



Mauszeiger mit user32.dll erstellen - samewise - 20.05.2014 09:16

Servus Leute,

Ich würde gerne meinen Mauszeiger programmatisch verändern. Dazu habe ich ein Beispiel im Internet gefunden, dass die user32.dll benutzt um eine erstellte Cursor Datei (.cur) zu laden.
Soweit funktioniert das auch wenn die .cur Datei mit einem anderen Programm erstellt wurde. (z.B.: Infranview).
Ich möchte allerdings eine Cursor zur Laufzeit aus einem eben erstellten Bitmap erstellen. Google schlägt mir dazu vor die Funktion CreateIconIndirect (user32.dll) zu verwenden. Diese Funktion soll zwei .bmp Dateien - ein Farbbild und das dazugehörige Maskenbild - in einen Cursor verwandeln können.
Jetzt bring ich das allerdings nicht hin. Ich finde dazu keine Lösung, wobei ich auch sagen muss, dass ich nicht wirklich viel Erfahrung beim Einbinden von dlls habe.
Ich habe ein Beispiel vi angehängt, das meine Versuche enthält.
Ich erstelle die Bitmaps mit Vision vis nach der Anleitung in
http://www.ucancode.net/VC_Library_Control_Tool/Create-display-convert-bitmap-cursor-CreateIconIndirect-DeleteDC-ICONINFO-VC.htm




lg
samewise

Labviewversion 2011 SP1


RE: Mauszeiger mit user32.dll erstellen - jg - 20.05.2014 16:36

Habe mir jetzt deine VIs nicht angesehen, aber prinzipiell kannst du eine beliebige Mauszeiger-Datei mit den Cursor-VIs aus LabVIEW laden, alles ohne user32.dll:
[attachment=49776]
Gruß, Jens


RE: Mauszeiger mit user32.dll erstellen - GerdW - 20.05.2014 16:38

Hallo Jens,

der OP will gern BMPs als Cursor-Bilder laden. Und das geht mit den LV-internen Cursor-VIs nicht…

Aus der Hilfe:
Zitat:(Windows) Die Datei muss entweder die Erweiterung .ani oder .cur haben.



RE: Mauszeiger mit user32.dll erstellen - jg - 20.05.2014 17:54

@Gerd: Überlesen...

@All: Vielleicht einfach selber den Binärfile erzeugen? https://en.wikipedia.org/wiki/ICO_%28file_format%29

Gruß, Jens


RE: Mauszeiger mit user32.dll erstellen - samewise - 26.05.2014 12:52

So ich habe jetzt den Weg den Jens vorgeschlagen hat gewählt. (Vielen Dank für den Input)

Ich erzeuge die Cursordatei (.cur) einfach selbst indem ich das Binärfile dazu erstelle.

Ich habe ein Beispielfile angehängt, für alle die ähnliches vorhaben.

lg Martin


RE: Mauszeiger mit user32.dll erstellen - GerdW - 26.05.2014 13:51

Hallo Martin,

und wenn du jetzt noch das fehlende SubVI "Cursor_draw.vi" bereitstellen könntest…


RE: Mauszeiger mit user32.dll erstellen - samewise - 27.05.2014 09:16

So jetzt noch das fehlende vi.

Testhalber zeichnet das vi Cursor draw (Labview Bildfunktionen aus der Audio und Grafik Palette) ein einfaches Rechteck.
Im Grunde kann die Bildinformation auch anderweitig erstellt werden.
Für einen Cursor werden zwei Bilder benötigt: Ein Farbbild und eine entsprechende Maske (Binärbild --> enthält an allen Positionen die im Cursor transparent dargestellt werden sollen eine 1)
Grundsätzlich handelt es sich um Test vis, die noch Verbesserungspotential beinhalten Wink

lg Martin