IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

L'objet HDC dans Form1.h pas dispo dans autres .cpp (add ou reference :/)


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Par défaut L'objet HDC dans Form1.h pas dispo dans autres .cpp (add ou reference :/)
    Bonjour,

    voilà j'ai un soucis, l'objet m_hDC de type HDC, il me dit lors de la compile :
    1>.\Bmp.cpp(28) : error C2065: 'm_hDC' : identificateur non déclaré
    Dans la fonction affichage il ne le reconnait pas donc, et le je peux pas faire comme le buffer, enfin j'ai essayé de transmettre son adresse mais ça ne fonctionne pas. Si quelqu'un a une idée ?

    Merci




    Form1.cpp (le CODE concerné) (ligne 10 et 36):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO : ajoutez ici le CODE du constructeur
    			//
    			m_hDC = GetDC((HWND)this->panel1->Handle.ToPointer());
    		}
     
    	protected:
    		/// <summary>
    		/// Nettoyage des ressources utilisées.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::Button^  button1;
    	protected: 
    	private: System::Windows::Forms::Button^  button2;
    	private: System::Windows::Forms::Label^  label1;
    	private: System::Windows::Forms::Panel^  panel1;
     
     
    	private:
    		/// <summary>
    		/// Variable nécessaire au concepteur.
    		/// </summary>
    		System::ComponentModel::Container ^components;
    		HDC m_hDC;
    Toujours Form1., ligne 10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
     
    	//******************************************************************
    	const int TAILLETOT = 400000;
        unsigned char *buffer1 = new unsigned char [TAILLETOT];
    	dlBmp(buffer1);
    	//*******************************************************************
     
    	affichage(buffer1);
     
    			 }
    	};
    }
    Bmp.h (la fonction concerné) ligne 18 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    void affichage(unsigned char *buffer1)
    {
    	unsigned char *buffer2 = (unsigned char *)strstr((char *)buffer1, "BM");
    	buffer2 = buffer2 + 54;
     
    	int hauteur = 240; // WARNING !
    	int largeur = 320; // WARNING !
    	int nbBits = 3; // car 24 bits = 8B pour chaque couleur RGB ce qui fait 3 octets
     
    	for (int l=0; l < hauteur; l++)
    	{
                    for (int c=0; c < largeur; c++)
                    {
                         unsigned char b = buffer2[l*largeur*nbBits +c*nbBits];
                         unsigned char g = buffer2[l*largeur*nbBits +c*nbBits +1];
                         unsigned char r = buffer2[l*largeur*nbBits +c*nbBits +2];
                         COLORREF couleur = RGB (r, g, b);
                         SetPixel(m_hDC, c, hauteur -1 - l, couleur);
                    }
    	}
    }

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    ta fonction affichage ne fait pas partie de la classe form1 elle ne peut donc pas connaitre m_hdc..

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Par défaut
    Citation Envoyé par farscape Voir le message
    salut,
    ta fonction affichage ne fait pas partie de la classe form1 elle ne peut donc pas connaitre m_hdc..
    oui donc comment je peux faire ? car je veux que Form1.h y'est le minimum de code.

Discussions similaires

  1. Comment faire que des objets 3D ne se touchent pas dans une scène.
    Par ibrakola dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 16/05/2012, 01h40
  2. Réponses: 2
    Dernier message: 10/03/2010, 15h36
  3. Réponses: 4
    Dernier message: 26/01/2010, 11h48
  4. [MySQL] Données SQL dans un tableau pas comme les autres
    Par Jeoffrey54 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/06/2008, 11h32
  5. Réponses: 3
    Dernier message: 12/02/2007, 03h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo