Dégardé de couleur [Résolu]

julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 2 sept. 2005 à 22:27 - Dernière réponse : BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention
- 2 sept. 2005 à 23:37
Je cherche à modifier l'apparence de mes progressbar.

J'ai déja mes fonctions pour écrire du texte à l'intérieu... par sous classement du message WM_PAINT de la progressbar.

Je voudrais également pouvoir effectuer des dégradés de couleur à
l'intérieur de la progressbar, mais je n'ai aucune idée de comment
procédé.

Le prototype de la fonction que je vois serait:

void drawDegrade(HWND hControl, COLORREF start, COLORREF end);

Mais alors comment faire l'algo de dessin du dégradé, aucune idée. Mes
premières recherche restant infructueuse, je demande votre aide.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 2 sept. 2005 à 23:16
3
Merci
au fait, un petit bitmap déjà en dégradé que tu plaquerais dessu dans le WM_PAINT, non ?
aurait en plus l'avantage de la vitesse.

ciao...
BruNews, MVP VC++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de BruNews
Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 2 sept. 2005 à 23:18
3
Merci
http://www.codeguru.com/Cpp/controls/controls/progresscontrols/article.php/c2221/

Regarde CGradientProgressCtrl::DrawGradient dans le fichier GradientProgressCtrl.cpp, c'est facile à adapter pour utiliser sans les MFC

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de vecchio56
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 2 sept. 2005 à 22:47
0
Merci
un truc qui semble simple (à dire au moins)
un dc mémoire, tu remplis par petits rectangles avec FillRect et quand toute ta bande pleine sur ce dc, tu BitBlt sur la progressbar.
A tester.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 2 sept. 2005 à 22:59
0
Merci
BruNews, j'ai pas compris, ou ca n'explique pas trop comment faire un dégradé
Commenter la réponse de vecchio56
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 2 sept. 2005 à 23:02
0
Merci
En fait, mon probleme est pas de créer des petits rectangles que je juxtapose (c'est l'idée de base que j'avais), mais de trouver une formule qui me donnera les couleurs de ces rectangles.
Pour l'instant tout ce que j'ai testé donne des rendus plutot minable ou on voit de façon très marqué les changements de couleur.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Commenter la réponse de julienbj
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 2 sept. 2005 à 23:07
0
Merci
J'ai exemple mais avec les MFC si tu veux, tu pourras adapter. Sinon l'API GradientFill sert sans doute a ca, mais je suis pas sur car jamais utilisé
Si tu cherches une formule, ca doit pas être bien compliqué, mais je pense qu'il ne faut pas que tu joues sur les 3 composantes R G et B sinon ca ressemblera pas à un dégradé
Commenter la réponse de vecchio56
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 2 sept. 2005 à 23:13
0
Merci
GradientFill serait assurément mieux mieux mais ça va demander pas mal de ressources, le jeu vaut-il la chandelle ?

Avec des rectangles très étroits remplis par FillRect je pense qu'on pourrait 'simuler' un dégradé, ensuite sera joli faut voir.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 2 sept. 2005 à 23:21
0
Merci
Eh oui pas con le bitmap, mais après faut plus avoir envie de changer de couleur!
Sinon dans le même ordre d'idée on peut utiliser GradientFill une seule fois pour mettre dans une bitmap comme ca par la suite c'est aussi rapide
Commenter la réponse de vecchio56
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 2 sept. 2005 à 23:22
0
Merci
Ah oui, BruNews si tu parlais d'une bitmap en mémoire ca pose problème si on a envie de changer la taille de la ProgressBar, ce qui risque d'autant plus d'arriver si on est dans une boite de dialogue
Commenter la réponse de vecchio56
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 2 sept. 2005 à 23:24
0
Merci
t'as vu qu'on changeait des couleurs de barres à l'exécution ? se fait chez vb ces progs bariolés, en général à ce genre de trucs qu'on les reconnait au 1er coup d'oeil.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 2 sept. 2005 à 23:27
0
Merci
D'accord avec brunews pour les applis VB, lol.
D'accord aussin avec vecchio pour le changement de taille de l'appli.

Vecchio, le lien donné à l'air prometteur.
Je crois que je vais faire les deux fonctions, comme ça on pourra choisir selon les besoins de l'application.
Merci à vous deux.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Commenter la réponse de julienbj
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 2 sept. 2005 à 23:28
0
Merci
Moi je les reconnais à "Impossible de trouver vb6fr.dll"
Commenter la réponse de vecchio56
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 2 sept. 2005 à 23:37
0
Merci
aussi, trop bon !!!

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews

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.