Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Curseur invisible avec SetCursor(NULL) [ Windows / System ] (Leucistic)

mardi 7 octobre 2008 à 09:04:57 | Curseur invisible avec SetCursor(NULL)

Leucistic

Bonjour,

J'ai cherché sur la MSDN, puis sur le net pour cacher le curseur, et les deux me disent : SetCursor(NULL);
J'ai essayé au début de mon main, mais mon curseur est toujours visible. J'ai alors fait quelques tests pour essayer de comprendre d'où venait le problème, notamment en faisant :

SetCursor(NULL);
if (GetCursor() == NULL)
   printf ("NULL");
else
   printf("Autre");

Et ceci m'affiche bien "NULL", pourtant le curseur est visible.

Quelqu'un y comprend quelque chose ?


L'ouverture de l'esprit n'est pas une fracture du crâne


mardi 7 octobre 2008 à 11:20:32 | Re : Curseur invisible avec SetCursor(NULL)

jeffy131

Oui, c'est une FAQ Win32 api
voir sur le newsgroup pro des apis Win32 :
news://194.177.96.26/fr.comp.os.ms-windows.programmation
où ça a maintes fois été discuté, même en 16-bits en 1992...

mardi 7 octobre 2008 à 20:00:10 | Re : Curseur invisible avec SetCursor(NULL)

Leucistic



L'ouverture de l'esprit n'est pas une fracture du crâne


mardi 7 octobre 2008 à 23:02:34 | Re : Curseur invisible avec SetCursor(NULL)

racpp

Administrateur CodeS-SourceS
Salut,
jeffy131 >> Si tu ne connais pas la réponse ou tu ne comprends pas le problème évoqué, ce n'est pas la peine de balancer des liens inutiles.
Leucistic >> Cela dépend de ce que tu veux faire exactement.
- SetCursor() et ShowCursor() ne fonctionnent qu'avec les fenêtres.
- Pour cacher le curseur du système, y compris celui des fenêtres et consoles, tu peux utiliser SetSystemCursor() en passant le handle d'un curseur transparent comme premier paramètre.
- Tu peux mettre le curseur de la souris en bas à droite de l'écran et l'empêcher de se déplacer en faisant comme ceci:
    int largeur=GetSystemMetrics(SM_CXSCREEN);
    int hauteur=GetSystemMetrics(SM_CYSCREEN);
    SetCursorPos(largeur,hauteur);
    RECT rect;
    SetRect(&rect,largeur,hauteur,largeur,hauteur);
    ClipCursor(&rect);

 et pour le libérer tu fais:
    ClipCursor(0);
- Pour cacher le curseur seulement dans la console, je ne sais pas.



mercredi 8 octobre 2008 à 10:41:20 | Re : Curseur invisible avec SetCursor(NULL)

Leucistic

Merci racpp !!!
Je pensais avoir mal cherché dans les news, mais apparemment non.

J'arrive a faire fonctionner le code qui met le curseur en bas à droite, mais ca ne correspond pas à mes attentes. Je m'explique : Je dispose d'une dalle tactile, l'utilisation de la souris est donc supprimée. En revanche, en touchant l'écran qui engendrera un simple clic, je souhaite ne pas voir le curseur. Or, avec la solution du curseur en bas à droite, il ne semble pas être capable de sélectionner quelque chose.

C'est donc la fonction SetSystemCursor mais je n'arrive pas à comprendre les paramètres à lui envoyer...
J'ai bien compris qu'il fallait le handle du curseur et par quoi le remplacer, j'ai donc essayer :
SetSystemCursor(NULL, NULL);
SetSystemCursor(GetCursor(), NULL);
Mais sans succès !

L'ouverture de l'esprit n'est pas une fracture du crâne


jeudi 9 octobre 2008 à 01:05:36 | Re : Curseur invisible avec SetCursor(NULL)

nanonavich



// cache mouse cursor
    ShowCursor(false);

// voir mouse cursor
    ShowCursor(true);


ou si tu est un peut fou tu prend un dessinateur tu dessine un cursor avec la couleur invisible et tu le load comme cursor (:


jeudi 9 octobre 2008 à 01:58:11 | Re : Curseur invisible avec SetCursor(NULL)

racpp

Administrateur CodeS-SourceS
nanonavich >> Il est en mode console. Comme je l'ai précisé plus haut, ShowCursor() ne fonctionne qu'avec les fenêtres. Il veut cacher le curseur système.
Leucistic >> SetSystemCursor() requiert comme premier paramètre le handle d'un curseur. Ce dernier peut être soit créé par programmation soit récupéré comme ressource de l'exécutable. Je vais faire un petit exemple et le poster comme code source.


jeudi 9 octobre 2008 à 02:35:37 | Re : Curseur invisible avec SetCursor(NULL)

racpp

Administrateur CodeS-SourceS
Je viens de déposer le code source. Le zip contient un curseur transparent.
CACHER LES CURSEURS SYSTEME


jeudi 9 octobre 2008 à 08:48:06 | Re : Curseur invisible avec SetCursor(NULL)

Leucistic

Euh ...
C'est normal si il me dit que le code source est désactivé ?

jeudi 9 octobre 2008 à 19:18:48 | Re : Curseur invisible avec SetCursor(NULL)

racpp

Administrateur CodeS-SourceS
C'est bizarre car aucun admin ne l'a désactivé. Je viens de le réactiver tu peux donc le consulter.



Cette discussion est classé dans : printf, visible, curseur, invisible, setcursor


Répondre à ce message

Sujets en rapport avec ce message

Curseur invisible [ par Naze ] Salut,comment fais-on pour facilement masquer le curseurs souris? Merci setcursor marche pas [ par mouss8 ] je voulais changer l'image du curseur de la souris par la commande SetCursor(LoadCursor(NULL,IDC_SIZEWE)); mais ça ne marche pas .comment faire pour m rendre un exe invisible [ par julien20vt ] Voila, j'ai un programme programmé avec visual C++ utilisant les MFC, et il n'a aucun interface graphique, je voudrais qu'il soit invisible, donc que Aide fichier :) [ par asnow ] Salut a tous :)Voila mon tit code pour ouvrir un fichiervoid Ouverture () {char nomf[20]; printf("Entrez le nom du fichier :"); scanf("%s", nomf curseur [ par ToToL ] Comment enlever le curseur sous dev c++ puis le remmetre ? je trouve pas les fonctionhelp me plz----------------------------------------------Programm programmation joystick [ par MadNomad53 ] J'ai un probleme de linkage avec ce programme:voici le source:#include #include // pour printf#include // pour les fonctions du joystickvoid main(){ CORRECTION HELP PLEASE NOOB [ par ziziboss ] #include #include #include int main (){ int nb_alea = 0; int nb_choisi = 0; randomize (); nb_alea = random(101); do { clrscr (); printf("Vous conversion de syntaxe en compilateur [ par laulau10 ] int i=1;do printf("coucou");whil(i=1);on peux me dire commen,t convertir ceci pour que ca fonctionne sous dev-c++ void Fa() { asm{ MOV AX,3 INT 0x33 Bouton visible ou non __vite!!! [ par curator68 ] Salut,J'aimerai pouvoir rendre visible ou non un bouton, en cliquant sur un autre, comment faire????Je trouve nul part.Merci d'avance.Curator68<img sr [C] lecture d'un fichier [ par GazGaz ] lu allalors voila en fait je lis un fichier en c et le probleme c'est que ce fichier est composé de lignes dont la taille exècede largement les 80 car


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.