Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2813 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Comment gérer un curseur avec 2 versions : N&B et 32 bits ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment gérer un curseur avec 2 versions : N&B et 32 bits ?

n°1435269
xman
branleur
Posté le 01-09-2006 à 16:43:55  profilanswer
 

Bonjour,
 
Je développe un logiciel Win32 en C++ (avec MFC) et j'ai besoin d'y inclure un joli curseur de souris symbolisant la rotation.
 
Avec un petit shareware, j'ai créé un fichier cursor1.cur contenant en 2 versions différentes :
- La première version N&B est compatible avec toutes les versions de Windows
- La 2ème version, en 32 bits (avec alpha channel pour donner de l'ombre à mon curseur), n'est compatible qu'avec XP donc je ne peux pas me permettre de ne garder que la version avec alpha channel car il faut que mon prog (professionnel) fonctionne aussi sous Windows 2000.
 
J'ai rajouté ce fichier dans mes ressources en tant que IDC_CURSOR_ROTATION et je le charge donc avec :
m_CursorRotation = theApp.LoadCursor(IDC_CURSOR_ROTATION);
Et je fais appel à SetCursor(m_CursorRotation); lorsque je souhaite l'afficher.
 
Pour info : l'éditeur de ressources reconnait bien mes 2 versions donc le shareware a bien créé un fichier valide.
 
http://img131.imageshack.us/img131/1598/curseurwh5.gif
 
Le problème, c'est que ça m'affiche la version N&B même si je suis sous XP et je n'ai trouvé aucune fonction permettant d'indiquer quelle version choisir parmi les 2 incluses dans le fichier ".CUR".
 
Enfin, je me dis qu'il existe peut-être une option pour que Windows XP rajoute tout seul l'ombre à un curseur N&B afin d'éviter aux gens comme moi de s'embêter à dessiner une ombre sur l'alpha channel et de faire un curseur en 2 versions.
 
Donc connaissez-vous un moyen pour me permettre d'afficher mon curseur personnalisé avec son ombre sous XP et en N&B sous Windows 2000 et versions antérieures ?
Merci. :jap:


Message édité par xman le 01-09-2006 à 16:49:08
mood
Publicité
Posté le 01-09-2006 à 16:43:55  profilanswer
 

n°1435810
xman
branleur
Posté le 03-09-2006 à 01:49:23  profilanswer
 

Personne n'a jamais essayé d'employer des curseurs de souris personnalisés incluant une ombre ? :??:

n°1435823
anordem
Posté le 03-09-2006 à 06:03:23  profilanswer
 

Salut.
 
Comme ça, je dirai que ça peut venir de l'absence du fichier manifest dans les ressources (sans oublier l'appel à InitCommonControls). Enfin, c'est une simple supposition.
 
Car dans la MSDN, c'est bien précisé que LoadCursor sélectionne l'image la mieux adaptée au périphérique d'affichage.
A moins que ton affichage ne soit pas en 32 bits. :)

n°1435916
xman
branleur
Posté le 03-09-2006 à 15:42:43  profilanswer
 

Ah merci, je zieuterai ça demain.
Mon affichage est bien en 32bits (d'ailleurs les curseurs standard comme la flèche par défaut ont bien leur ombre) mais je ne crois pas faire appel à InitCommonControls ni jamais m'être préoccupé du fichier manifest.
 
J'espère que ce n'est pas parce que j'utilise VC++6.0 qui commence à dater.

n°1436213
bjone
Insert booze to continue
Posté le 04-09-2006 à 13:10:59  profilanswer
 

prends un outil d'édition d'icône/curseur.
 
tu dessines le curseur en 32bits, il te fera les versions dégradées pour toi.

n°1436487
xman
branleur
Posté le 04-09-2006 à 22:19:18  profilanswer
 

Pour ce qui est de le dessiner, c'est ce que j'ai fait. :)
Je vous ai pas mis de capture parce que VC++ 6.0 est trop moisi pour connaître les curseurs pour Windows XP et il l'affiche mal.
Mais si je lui file un fichier avec juste la version 32 bits, il l'affiche toujours mal dans VC++6.0 mais une fois compilé le curseur s'affiche bien comme je veux dans mon prog.
Mais si je lui file un fichier incluant les 2 versions, c'est la version mono qui est choisie. :(
 
Bon sinon aujourd'hui j'ai regardé un peu plus en détail et InitCommonControls ou plutôt InitCommonControlsEx n'a pas l'air de faire grand chose. Et pour le manifest, j'ai pas trop capté quoi faire avec.
 
On devrait prochainement passer à Visual Studio .NET alors j'espère que ça arrangera les choses. En attendant, c'est pas un drame si le curseur n'a pas d'ombre, y'a d'autres priorités sur notre soft. ^^


Message édité par xman le 04-09-2006 à 22:19:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Comment gérer un curseur avec 2 versions : N&B et 32 bits ?

 

Sujets relatifs
pour gérer un menu de siteDécaler le curseur dans un <input />
gerer mieux la mmemoire pour le calcul matriciel[VBA-E] Gérer le changement de sélection d'une cellule
Collection d'Objet en php + gérer ordre de fichiers sur le serveur ?image qui suit le curseur dans une animation flash
[SGDB] PL/SQL : Fonction qui retourne un curseur[résolu] gérer le clic droit sur un bouton
[VBA] Plantage du code selon les versions d'OfficePlugin Eclipse pour gerer une multitude de "Run..."
Plus de sujets relatifs à : Comment gérer un curseur avec 2 versions : N&B et 32 bits ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR