Mauscursor in thread verändern
-
Hallo,
ich habe vor, den Mauscursor ähnlich der sich ab und an umdrehenden
windows-sanduhr während eines blockierenden prozessabschnitts laufend
zu ändern. ich dachte, ich packe das ding in einen thread:UINT CGizehDlg::waitingMouse(LPVOID pParam) { int* pFlag = (int*) pParam; HCURSOR lhCursor; while (*pFlag) { lhCursor = AfxGetApp()->LoadCursor(IDC_CURSOR1); SetCursor(lhCursor); Sleep(500); lhCursor = AfxGetApp()->LoadCursor(IDC_CURSOR2); SetCursor(lhCursor); Sleep(500); lhCursor = AfxGetApp()->LoadCursor(IDC_CURSOR3); SetCursor(lhCursor); Sleep(500); lhCursor = AfxGetApp()->LoadCursor(IDC_CURSOR4); SetCursor(lhCursor); Sleep(500); lhCursor = AfxGetApp()->LoadCursor(IDC_CURSOR5); SetCursor(lhCursor); Sleep(500); } return 0; }soweit die threadfunktion, ich rufe sie auch korrekt auf, nur der cursor ändert sich nicht. ich hab auch mal versucht, lhCursor als statische membervariable aufzunehemen, aber ohne erfolg. wisst ihr, worans liegt?
-
Hast du inzwischen eine Lösung für dein Problem gefunden? Ich beschäftige mich momentan gerade auch damit, bin aber auch noch nicht weiter gekommen. Oder weiss sonst jemand in dem Forum Rat?
-
Zeig mal die Funktion, in der der Thread gestartet wird.
-
Ich glaube, daran ist nichts besonderes.
CWinThread *pThread; pThread = AfxBeginThread(FileThread, this); pThread->SetThreadPriority(THREAD_PRIORITY_BELOW_NORMAL );Ich instantiiere eine Klasse, danach rufe ich die Methode auf, in der der oben stehende Code drin steckt.
UINT Preview::FileThread(LPVOID pParam) { Preview *file = (Preview*) pParam; // Hier folgt mein zeitraubender Code, wo ich die Sanduhr einblenden möchte // klappt aber bisher nicht }