Programmieren mit C++

Borland C++ Builder

Maus

Mauscursor ändern

Wie kann man mit den Mitteln des C++Builders den Mauscursor verstecken?

Frage

C++Builder steuert den Mauscursor über das Property Cursor des Objekts TForm. Cursor speichert einen Index auf die Cursorhandles in Form eines TCursor, der letztlich jedoch ein int ist. Wird der Wert auf -1 gesetzt, so liegt kein gültiges Handle vor. Es gibt jedoch auch den offiziellen Wert crNo, der über den Objektinspektor ebenso zugewiesen werden kann wie zur Laufzeit durch direkten Code:

Cursor = crNo;

Lösung

Wie werden eigene Mauszeiger in C++Builder-Applikationen verwendet?

Frage

Der C++Builder erlaubt das Einbinden eigener Mauszeiger. Dazu müssen die Zeigersymbole in einer Ressourcendatei abgelegt werden, die mit dem im Lieferumfang enthaltenen Bildeditor erzeugt werden kann. Die Resourcendatei muß anschließend in das Projekt aufgenommen werden, was durch eine pragma-Anweisung geschieht:

#pragma resource "*.res"

Die hier gezeigte Anweisung erwartet die Ressource in einer Datei, die den gleichen Namen trägt wie das Codemodul, jedoch mit der Extension „.RES“.

Lösung

Die so eingebundenen Ressourcen müssen beim Erstellen des Formulars geladen werden, was am besten in der Methode FormCreate geschieht:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 Screen->Cursors [1] = LoadCursor(Handle, MAKEINTRESOURCE(333));
}

Im obigen Beispiel wurde ein Mauszeiger mit dem Identifier „333“ geladen und dem Index 1 des Property Cursor des Objekts TScreen zugewiesen. TScreen ist immer verfügbar und beschreibt die physikalische Bildschirmoberfläche. Über dieses Objekt kann z. B. auch die Dimension der Anzeigefläche ermittelt werden – und auch die geladenen Mauszeiger.

Ressourcen laden

Anschließend kann der geladene Mauszeiger wie gewohnt dem Property Cursor des TForm-Objekts zugewiesen werden, wobei der Compiler bei Zuweisung eines int eine Warnung erzeugt, daß ein int einer TControl zugewiesen werden soll. Dies umgeht der nachfolgende Cast:

Cursor = Tcursor(1);

Mauszeiger anzeigen





Sachgebiet


© 2009-2012 by Alojado Publishing. Alle Rechte vorbehalten. Ausgewiesene Marken gehören ihren jeweiligen Eigentümern.
Mit der Benutzung dieser Seite erkennen Sie die Nutzungsbedingungen und die Datenschutzerklärung an. Der Betreiber übernimmt keine Haftung für den Inhalt verlinkter externer Internetseiten.
Seite erzeugt 2012-05-20 02:35:41 von textarchiv.alojado.de