2 Stimmen

Wie legt man die Hotspot-Koordinaten für einen aus einer Symboldatei erzeugten Windows-Cursor fest?

Ich setze einen benutzerdefinierten Cursor in meiner App aus einer Symboldatei, aber der Klickpunkt liegt an den falschen Koordinaten. Ich setze den Cursor mit

SetClassLongPtr(hwnd, GCL_HCURSOR, reinterpret_cast<LONG_PTR>cursor)

wobei Cursor das Ergebnis von ist;

LoadImage(
    NULL,
    "some_path/cursor.ico", 
    IMAGE_ICON, //also tried IMAGE_CURSOR
    0, //width. 0 uses the width of the file provided
    0, //height. 0 uses the height of the file provided
    LR_LOADFROMFILE
); 

Der Cursor wird zwar geladen, aber die Klicks kommen aus der linken unteren Ecke des Cursorbildes und nicht von links oben.

En wikipedia-Artikel über .ico-Dateien sagt, dass die Hotspots nur in .cur-Dateien angegeben werden, nicht in .ico-Dateien.

Edit: Frage präzisiert


ref: Bild laden() y SetClassLongPtr() auf msdn.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X