Ich habe es mittlerweile gefunden. Funktioniert gut. Musste dafür aber wirklich ins SDK eingreifen. Für wen es interessiert:
In IrrDeviceWin32.cpp (oder so) habe ich ide Parameter für Wndclassex geändert. Ich habe dabei die Zeile mit hCursor geändert:
hCursor = NULL
Damit braucht man nur noch SetCursor() aufrufen (am besten kurz nach CreateDevice()) und schon hat man seinen eigenen Cursor. Das kann ein animierter sein und ein statischer (dann braucht man nicht mehr so kompliziert zu machen)
Aber ich stehe vor einem anderen Problem, das nichts damit zu tun hat.
Wenn ich einen stringw mit Inhalt fülle, kann ich manchmal nichts mehr hinzufügen (die Funktion append() wird dabei eigentlich durchführt, aber es lässt sih kein Buchstabe mehr anfügen)
Das Merkwürdige ist, dass es immer an der gleichen Stelle passiert und immer nur dort.
Ich habe schon verschiedene Dinge versucht. Ich weiß nicht, ob der Code da so viel hilft, weil es ein sehr umfangreicher ist.
Code:
stringw value;
for (int i = 0; i < NUM_ERAS; i++)
{
if (m_bonus[i].iBonusType != -1)
{
switch (m_bonus[i].iBonusType)
{
case 0:
value += TXT->getText(38); break;
case 1:
value += TXT->getText(39); break;
case 2:
value += TXT->getText(40, (stringw)m_bonus[i].Data2, (stringw)m_bonus[i].Data1); break;
case 3:
value += TXT->getText(41, (stringw)m_bonus[i].Data1, (stringw)m_bonus[i].Data3, (stringw)m_bonus[i].Data2); break;
case 14:
value += TXT->getText(40, (stringw)m_bonus[i].Data2, (stringw)m_bonus[i].Data1); break;
case 15:
value += TXT->getText(41, (stringw)m_bonus[i].Data1, (stringw)m_bonus[i].Data3, (stringw)m_bonus[i].Data2); break;
Das Problem ist halt, dass in manchen Fällen value nur den wert vom ersten Durchlauf der Schleife annimmt.
(getText gibt einen Text zurück, den ich aus XML-Dateien ausgelesen habe)