Guten Abend,
ich stehe gerade etwas auf dem Schlauch und Google warf mir auch nichts brauchbares entgegen. Das Problem ist folgendes:
Über eine Bibliotheksfunktion habe ich einen HCURSOR vorliegen. Da ich mit einem HCURSOR jedoch nichts anfangen kann, weil der Wert dynamisch ist, brauche ich irgendwie eindeutige IDs, die auf jedem Windows PC und nach jedem Programmstart die selben sind.
Im MSDN finde ich keine Funktionen, über die ich eine eindeutige ID bekommen könnte (wahrscheinlich, weil Cursor dynamisch nachgeladen werden können).
Da ich aber nur mit den Standardcursorn, die bei der
LoadCursorDoku gelistet sind, arbeite, wäre eine Idee, den Cursor auf ein IDC_* Makro/Konstante zurückzuführen.
Die einizge Lösung, die mir dazu spontan einfällt, ist folgende:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
// Alle genutzten Cursor laden
HCURSOR hArrow = LoadCursor(NULL, IDC_ARROW);
HCURSOR hWait = LoadCursor(NULL, IDC_WAIT);
// ...
// Cursor später abfragen per
if (hCursor == hArrow)
// Arrow
else if (hCursor == hWait)
// Wait
|
Da die Cursor jedoch nicht von mir, sondern der kompilierten Bibliothek geladen werden, halte ich diese Lösung für nicht ganz optimal, um die Cursor nicht unnötigerweise mehrfach in den Speicher zu laden (obwohl die Frage ist, ob das überhaupt passiert). Kennt jemand eine bessere Lösung, um an eindeutige CursorIDs (für die Standardcursor) zu kommen oder den HCURSOR, auf einen IDC_*-Wert zurückzuführen?
Viele Grüße