AFFICHE COULEUR

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 juil. 2007 à 19:43
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 - 24 juil. 2007 à 07:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43388-affiche-couleur

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
24 juil. 2007 à 07:48
Il faut remettre la boite dans sa version standard
ccl.Flags = CC_FULLOPEN
Et la c'est la galère pour définir les couleurs personnalisées.Les couleurs ne se mettent pas dans les cases choisies.
knetus Messages postés 15 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 21 août 2009
23 juil. 2007 à 15:32
merci pour ces remarques !!
pourrais je avoir plus de details stp :
"Petit défaut,l'utilisation des variables non initialisées .data? perturbe la boite"
je ne vois pas de quelle facon elle est perturbée !!
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
23 juil. 2007 à 14:19
Salut,
petite précision,editmasm permet l'écriture de couleurs dans le code (pub).
La boite windows choosecolor y est utilisé sans créer une autre boite (pas utile) et au cas ou l'utilisateur clic sur OK ,la couleur choisie (rgbResult) est retournée dans la valeur de retour de la fonction et traitée comme suit dans l'éditeur.
Ton exemple est toutefois interessant pour l'utilisation des template dans les dialogues box.
Petit défaut,l'utilisation des variables non initialisées .data? perturbe la boite.
ToutEnMasm






.if eax != 0
mov color, eax
invoke dw2hex, color, ADDR colref ;dwtoa dw2hex
invoke lnstr,addr colref
.if eax != 0
cld
lea edi,colref
add edi,eax
mov al,"h"
stosb
xor eax,eax
stosb
.endif
invoke SendMessage,Hredit, EM_REPLACESEL,0,addr colref
invoke SetFocus,Hredit
.endif
CADRATURE Messages postés 25 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 13 juin 2009
19 juil. 2007 à 18:57
Très utile en effet.
Très bien. Cela manque souvent dans beaucoup de logiciels.

RGB ont comme valeur MAX 255, ce qui est très bien
Si en plus, à côté il y avait RGB avec 100 comme valeur MAX cela serait bien aussi pour moi.
Mais bon. heu , je dis ça je dis rien.

Salutations.
knetus Messages postés 15 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 21 août 2009
10 juil. 2007 à 22:01
merci pour la remarque !!
je vais la prendre en compte !!!
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juil. 2007 à 19:43
Les fonctions de la famille printf (wsprintf ici) sont ultra lentes 'by design' (nbr params inconnu), les employer dans du code asm est un non sens.
Le nbr de params étant inconnu, c'est à l'appelant de dépiler (convention d'appel cdecl), ce que je ne vois pas fait dans ton code.
Mon source contient tout l'asm nécessaire pour remplacer wsprintf, j'espère voir cela mis dans une prochaine MAJ de ton zip.
Bonne continuation.
Rejoignez-nous