DEGRADÉ DE COULEUR

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 29 juin 2003 à 14:14
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 23 sept. 2008 à 07:45
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/11003-degrade-de-couleur

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
23 sept. 2008 à 07:45
c'est pas faux... voire meme vrai ^^
cs_Frozer Messages postés 7 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 22 septembre 2008
22 sept. 2008 à 22:32
Certes, mais si ce prog doit servir d'exemple, autant utiliser une méthode de dessin adaptée.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
22 sept. 2008 à 09:38
oui c'est vrai que ce n'est pas adapte, mais de toute facon ce prgm ne sert a rien dans la vraie vie, il sert juste a faie un petit exemple d'utilisation du GDI avec l'api Windows (WM_CREATE PAINT DESTROY...)
cs_Frozer Messages postés 7 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 22 septembre 2008
21 sept. 2008 à 16:48
C'est trop beau.

Juste un conseil cependant, tu devrais pas utiliser SetPixel pour dessiner ton dégradé, le redessin est super lent. SetPixel est conçu pour des pixels individuels, pas pour toute une fenêtre. Stocke chaque pixel dans un bitmap (buffer) genre "COLORREF screen_buffer[512 * 512]", puis utilise des fonctions de gestion de bitmaps du GDI pour afficher ton bitmap, genre SetDIBitsToDevice ou StretchDIBits.
MarioDev Messages postés 3 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 3 juillet 2003
2 juil. 2003 à 14:24
C plus parce qu'on ne fait pas attention que par manque de connaissance , un exemple quand tu crée ton constructeur pour l'initialisation de tes variables , tu te doit aussi de creer un destructeur pour liberer la memoire , ces deux fonctions ont le meme nom à une différence près le ~ qui est le complement.
le ~ s'utilise beaucoup avec des valeurs binaire en général pour des mask supprésif
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 juin 2003 à 20:47
merci! je connaissais pas..
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
29 juin 2003 à 20:44
le '~' est tout simplement le complement, i.e. l'inversion de tous les bits !
EXEMPLE:
~0110001 = 1001110
Et donc j'en avais besoin pour la continuite des couleurs.
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 juin 2003 à 17:51
De tete, je me souviens que GetSystemMetrics(SM_CYCAPTION) retourne la hauteur de la barre de titre. Pour le reste, il faut aller sur msdn.
Tu peux m'expliquer les '~' devant les valeurs RGB de ton programe ?
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
29 juin 2003 à 17:34
oui j'ai remarquer ca, mais je ne savais pas comment obtenir toutes les longeurs !
Merci maintenant pour l'astuce, mais 'GetSystemMetrics' on peut tout obtenir avec ???
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 juin 2003 à 14:39
Tant que j'y suis, j'ai une question :)
RGB(~(x & 255),0,~(y & 255));

Je comprend pas les '~' ?
Merci
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 juin 2003 à 14:14
Salut,
Je voulais juste faire une petite remarque:
Quand tu crée une fenetre, la largeur et la haute de la fenetre passés en arguments a CreateWindow sont la largeur et la hauteur de la fenetre entiere (bords, titre, menu... inclus). Dans ton programe, ton contexte d'affichage fait un truc comme 500*480.
Il faut que tu rajoutes la taille des bords et la taille de la barre de titre pour avoir un vrai DC de 512pixel de coté (avec GetSystemMetrics).
Rejoignez-nous