Changer le curseur de la souris [Résolu]

vincent068 12 Messages postés lundi 29 janvier 2007Date d'inscription 12 février 2007 Dernière intervention - 3 févr. 2007 à 18:30 - Dernière réponse : vincent068 12 Messages postés lundi 29 janvier 2007Date d'inscription 12 février 2007 Dernière intervention
- 4 févr. 2007 à 13:36
bonjour.

j'ai créé une fonction pour changer le curseur de la souris lorsque je le souhaite :

void

setWaitCursor(HWND hwnd)
{   HCURSOR hCurs_wait;

   hCurs_wait = LoadCursor(NULL, IDC_WAIT); 

   SetClassLong(hwnd,GCL_HCURSOR,(
long) hCurs_wait);}

Cette fonction ne marche que si je l'utilise avant ShowWindow(), après non.
Je ne sais pas quoi faire.
Merci
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 3 févr. 2007 à 23:54
3
Merci
Salut,
Tu peux utiliser la fonction SetCursor(). Elle marche toujours.
SetCursor(LoadCursor(0,IDC_WAIT));

Merci racpp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de racpp
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 4 févr. 2007 à 00:01
0
Merci
SetCursor() me semble sans effet si appelé depuis un thread secondaire.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 4 févr. 2007 à 00:42
0
Merci
BruNews >> Dans ce cas il faudra attacher le thread secondaire au thread principal avec
AttachThreadInput().

Commenter la réponse de racpp
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 4 févr. 2007 à 01:08
0
Merci
Non aucun besoin, comme d'hab il y a solution simple:
Poster message perso depuis le thread dès son début et le thread primaire appelle SetCursor.
Idem en finissant le thread et le primaire remet l'ancien curseur si besoin.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 4 févr. 2007 à 01:10
0
Merci
vincent068 >> Je viens de tester:
SetClassLong(hwnd,GCL_HCURSOR,(long) LoadCursor(0,IDC_WAIT));
Ca marche chez moi dans tous les cas, avant ou après ShowWindow(). Il me semble que la cause du problème est ailleurs.
Commenter la réponse de racpp
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 4 févr. 2007 à 01:15
0
Merci
C'est certain que ça marche, je l'ai déja employé quand convenait.
Par contre le changement de cursuer ne sera visible que s'il y a mouvement de la souris, ce qu'on peut bien sur simuler par code.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 4 févr. 2007 à 01:20
0
Merci
BruNews >> Ca s'appelle une belle astuce.
Commenter la réponse de racpp
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 4 févr. 2007 à 01:27
0
Merci
Je parlais de l'astuce du message perso inter threads.
Commenter la réponse de racpp
vincent068 12 Messages postés lundi 29 janvier 2007Date d'inscription 12 février 2007 Dernière intervention - 4 févr. 2007 à 13:36
0
Merci
OK Merci beaucoup.
SetCursor(LoadCursor(0,IDC_WAIT)) marche bien chez moi.

Par contre pour le setClassLong(), je ne comprend pas ce qui l'empêche de fonctionner, d'autant plus que je l'ai aussi testé dans d'autre programmes et la fonction marchait.
Commenter la réponse de vincent068

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.