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

  FORUM HardWare.fr
  Programmation
  C

  comment utiliser cette fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment utiliser cette fonction

n°1535253
cpu-fan
Posté le 28-03-2007 à 15:35:37  profilanswer
 

bonjour
voila sur un forum on m'a donner cette fonction :  
 
#include <windows.h> // GDI spécifique windows
 
// Note pas de contrôle de x et y, si les coordonnées ne sont pas valide le résultat est indéfini.
// pColor doit pointer sur un COLORREF valide
BOOL GetScreenColor(int x,int y,COLORREF * pColor)
{
BOOL bResult = FALSE; //  Echec par défaut
 
// Créer un device context sur l'écran
HDC hScreen = CreateDC(TEXT("DISPLAY" ),NULL,NULL,NULL);
 
    if (pColor && hScreen)    
    {
        // tout est ok
        *pColor = GetPixel(hScreen,x,y);
        bResult = TRUE;
    }
   
    if (hScreen)
    {
        // Détruire le DC
        DeleteDC(hScreen);
    }
    return bResult;
}
 
 
c'est pour , en envoiyen les coordoné d'un pixel , en récupérer la couleur
seulement je ne sai pas du tout comment récuperer les 3 teinte (rgb)
esque quelqun pourrai m'aider , sachan que le programme est en mode console et que je veu afficher les 3 teinte avec un printf
de plus , cette conction utilise l'API Win32 , et je ne sai pas quelle fichier inclure a mon programme (dll ? , manip a faire sous dev c++  :??: )
voila merci  :D

mood
Publicité
Posté le 28-03-2007 à 15:35:37  profilanswer
 

n°1535759
anordem
Posté le 29-03-2007 à 12:40:44  profilanswer
 

Salut.
 
Quand on utilise l'Api Win32, il est toujours utile de posséder le SDK qui contient la MSDN et la signification de toutes les fonctions et structures.
Ensuite, quant on récupère un bout de code quelque part, il est préférable de le comprendre avant de l'utiliser.
 
Voilà pour la morale !  :p  
 
Pour répondre à ta question, GetPixel renvoit une valeur de type COLORREF, c'est à dire unsigned long, de la forme : 0x00bbggrr.
Tu peux accéder aux différentes composantes à l'aide des macros GetRValue, GetGValue, et GetBValue.
 
Tout est défini dans windows.h mais tu devras peut être ajouter Gdi32.lib (libgdi32.a) au linker.
 
http://msdn2.microsoft.com/en-us/library/ms532655.aspx

n°1536764
cpu-fan
Posté le 31-03-2007 à 20:17:36  profilanswer
 

salut
voila j'ai éssayer d'utiliser la fonction mais j'y arrive pas :(
j'éssaye d'aficher COLORREF grace a un printf mais ca ne compile pas :(
voici mon code :  
#include <stdio.h>
#include <stdlib.h>
#include <windows.h> // GDI spécifique windows
int main(int argc, char *argv[])
{
  long COLORREF = 5;
    long *pColor = &COLORREF;
    GetScreenColor(5,5,pColor); // On envoie pointeur (l'adresse de nombre) à la fonction
  printf("%ld",COLORREF );
  system("PAUSE" );  
  return 0;
}
 
BOOL GetScreenColor(int x,int y,COLORREF * pColor)
{
BOOL bResult = FALSE; //  Echec par défaut
HDC hScreen = CreateDC(TEXT("DISPLAY" ),NULL,NULL,NULL);
    if (pColor && hScreen)    
    {
        // tout est ok
        *pColor = GetPixel(hScreen,x,y);
        bResult = TRUE;
    }
   
    if (hScreen)
    {
        // Détruire le DC
        DeleteDC(hScreen);
    }
    return bResult;
}
j'ai ces erreur de compilation :  
  [Linker error] undefined reference to `CreateDCA@16'  
  [Linker error] undefined reference to `GetPixel@12'  
  [Linker error] undefined reference to `DeleteDC@4'  
  ld returned 1 exit status  

n°1536875
breizhbugs
Posté le 01-04-2007 à 11:27:50  profilanswer
 

anordem a écrit :

Salut.
Tout est défini dans windows.h mais tu devras peut être ajouter Gdi32.lib (libgdi32.a) au linker.
 
http://msdn2.microsoft.com/en-us/library/ms532655.aspx


n°1537455
Emmanuel D​elahaye
C is a sharp tool
Posté le 02-04-2007 à 17:10:14  profilanswer
 

anordem a écrit :

Tout est défini dans windows.h


Déclaré...
 
http://mapage.noos.fr/emdel/notes.htm#definitions
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1539823
cpu-fan
Posté le 06-04-2007 à 20:26:31  profilanswer
 

tu devras peut être ajouter Gdi32.lib (libgdi32.a) au linker.  
slp tu peux m'expliquer comment on fait ? (je suis sous dev c++)
merci :)

n°1539882
Emmanuel D​elahaye
C is a sharp tool
Posté le 07-04-2007 à 00:42:30  profilanswer
 

cpu-fan a écrit :

tu devras peut être ajouter Gdi32.lib (libgdi32.a) au linker.  
slp tu peux m'expliquer comment on fait ? (je suis sous dev c++)
merci :)


wxDev-C++ (très proche de dev-C++ qui est obsolète)
 
Outils > Options du Compilateur > Ajouter ces commandes lors de l'appel de l'éditeur de lien :  
 
-lgdi32
 
valider...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1541007
cpu-fan
Posté le 10-04-2007 à 21:34:40  profilanswer
 

superbe !!
ca marche ! :)
merci beaucoup

n°1541678
cpu-fan
Posté le 11-04-2007 à 22:09:55  profilanswer
 

eu juste encore une question
comment on récupére les 3 valeur rgb avec Get"Value ?

n°1542252
cpu-fan
Posté le 12-04-2007 à 20:28:03  profilanswer
 

a non c'est bon j'ai trouvé :)


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

  comment utiliser cette fonction

 

Sujets relatifs
aide OpenOffice.org utiliser la fonction "RECHERCHEV"[Quick]Utiliser la fonction date avec un locale() de choix
Excel, quelle fonction/macro utiliser ?[VBS] Utiliser les fonction d'un autre script vbs
[Résolu]Utiliser une fonction dans un fichier PHPQuel est la syntaxe pour utiliser les variables dans une fonction
Comment utiliser une fonction ecrite en C++ dans un projet VB ?Comment utiliser une fonction ecrite en C++ dans un projet VB ?
[C#] Création de packageensemble de fonction sans utiliser une classe?utiliser fonction mail() chez free
Plus de sujets relatifs à : comment utiliser cette fonction


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