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 :

Etirer Cbutton a la taille de mon bitmap


Sujet :

MFC

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut Etirer Cbutton a la taille de mon bitmap
    Bonjour a tous,

    J'utilise cette méthode a fin de mettre un bitmap sur un CButton,


    HBITMAP m_bmp;
    HINSTANCE resource;
    resource = AfxGetResourceHandle();
    RECT tailleBouton;
    m_BtnBack.GetClientRect(&tailleBouton);
    m_bmp = (HBITMAP)LoadImage(resource,MAKEINTRESOURCE(IDB_BITMAP_BUTTON_BACK),IMAGE_BITMAP,0, 0, LR_CREATEDIBSECTION);
    m_BtnBack.SetBitmap(m_bmp);

    Je souhaiterais que la taille du bouton "s'adapte" automatiquement a la taille du Bitmap ( et non l'inverse )

    Vous savez comme s'y prendre?

    Merci a tous

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Par défaut
    Salut,
    Après avoir chargé ton bitmap, récupère sa taille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BITMAP BM;
    m_bmp.GetObject(sizeof(BM), &BM);	// Retrieve size of Bitmap
    BM.bmWidth, BM.bmHeight ->largeur, Hauteur
    redimensionne ton bouton à ces valeurs et charge ton bitmap.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Merci de ta réponse,

    Pour BITMAP BM, il sort d'ou? et comment l'instancier a mon vrai bitmap?
    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Par défaut
    BITMAP est la tructure de la classe CBitmap.
    Dans mon exemple m_bmp est un CBitmap
    La fonction GetObject(...) remplit la structure BM

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Merci, donc dans le cas du code que j'ai donné, c'est a moi de créer ce BITMAP BM ?

    Merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    HBITMAP m_bmp;
    HINSTANCE resource;
    resource = AfxGetResourceHandle();
    RECT tailleBouton;
    m_BtnBack.GetClientRect(&tailleBouton);
    m_bmp = (HBITMAP)LoadImage(resource,MAKEINTRESOURCE(IDB_BITMAP_BUTTON_BACK),IMAGE_BITMAP,0, 0, LR_CREATEDIBSECTION);
    
    BITMAP BM;
    m_bmp.GetObject(sizeof(BM), &BM);	// Retrieve size of Bitmap
    // Determine la nouvelle positionde ton bouton -> x&y
    m_BtnBack.MoveWindow(x,y,BM.bmWidth, BM.bmHeight );
    
    m_BtnBack.SetBitmap(m_bmp);

  7. #7
    Membre confirmé Avatar de riadh_ado
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2006
    Messages : 90
    Par défaut
    Citation Envoyé par alen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    BITMAP BM;
    m_bmp.GetObject(sizeof(BM), &BM);    // Retrieve size of Bitmap
    // Determine la nouvelle positionde ton bouton -> x&y
    m_BtnBack.MoveWindow(x,y,BM.bmWidth, BM.bmHeight );
    
    Comme il a dit alen bm est une structure qu contient tous les informations de l'image chargée. elle est définti comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typedef struct tagBITMAP {
        int     bmType;
        int     bmWidth;
        int     bmHeight;
        int     bmWidthBytes;
        BYTE    bmPlanes;
        BYTE    bmBitsPixel;
        LPVOID  bmBits;
    } BITMAP;

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_bmp.GetObject(sizeof(BM), &BM);

    Va mettre tous les informations necessaire de l'image chargée dans BM.
    A+

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Merci a tous pour votre aide,


    Cependant, cela met une erreure de compilation me disant que :

    error C2228: left of '.GetObjectA' must have class/struct/union type

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    	HBITMAP m_bmp;
    	HINSTANCE resource;
    	resource = AfxGetResourceHandle();
    	RECT tailleBouton;
    	m_BtnSupprimerCompte.GetClientRect(&tailleBouton);
    	m_bmp = (HBITMAP)LoadImage(resource,MAKEINTRESOURCE(IDB_BITMAP_DELETE),IMAGE_BITMAP,0,0, LR_CREATEDIBSECTION);
    	BITMAP BM;
    	m_bmp.GetObject(sizeof(BM), &BM);
    	m_BtnSupprimerCompte.SetBitmap(m_bmp);

    Je ne vois pas d'ou viens mon problème ou alors je n'ai pas compris quelquechose!
    Merci a tous!

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Il y a un problème de mélange, là.
    alen parle de Bitmap MFC, le code de Nixeus contient des Bitmap non-MFC (la seule fonction MFC utilisée est celle pour récupérer le HINSTANCE/HMODULE)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    J'ignorais qu'il éxistait des bitmaps MFC et des bitmaps NON MFC.
    Mes bitmaps viennent des mes ressources, je les ai importés moi même.

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je parle de Bitmap MFC lorsqu'il est encapsulé dans un objet MFC CBitmap.
    Ce qui n'est pas le cas dans ton code.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Affirmatif
    Mais alors comment étirer on bouton au dimensions de mon bitmap?

  13. #13
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Pour obtenir les dimensions d'un bitmap non-encapsulé, on utilise la fonction GetObject() globale.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Merci de ta réponse et désolé de répondre aussi tardivement.
    Cela dit, j'ai du mal me dépatouiller avec GetObject, déja pour récupérer la taille de mon image par rapport avec mon code, et ensuite pour affectuer largeur et hauteur a mon bouton

Discussions similaires

  1. Modifier/forcer la taille de mon bitmap.
    Par linuxfr dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2009, 14h16
  2. [CSS] Modifier la taille de mon image pour mon bouton
    Par bouchette63 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 11/08/2006, 10h15
  3. taille de mon iframe
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 31/05/2006, 14h46
  4. Aide: Problème avec la taille de mon fichier
    Par ATTIA dans le forum Langage
    Réponses: 6
    Dernier message: 15/03/2006, 10h19
  5. [FLASH MX] Modification de la taille d'un bitmap
    Par bobgeldof7 dans le forum Flash
    Réponses: 5
    Dernier message: 21/11/2004, 14h08

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