UNE CLASSE BOUTON BITMAP POUR C++/MFC (TRÈS SIMPLE À UTILISER)

Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008
- - Dernière réponse : randriano
Messages postés
54
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
26 juillet 2011
- 2 sept. 2007 à 14:29
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/38953-une-classe-bouton-bitmap-pour-c-mfc-tres-simple-a-utiliser

Afficher la suite 
randriano
Messages postés
54
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
26 juillet 2011
-
Salut !

Mon code est correct ?
Je vais essayer avec une image de 32 bits et je confirmerai si ça marche !
OK !
yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17 -
Salut,

Il est possible que ton ID de ressource ne soit pas bon ou pas pris en compte comme il faut.

OU alors tu utilises des images 8 bits ou 16 bits, dans ce cas, essayes avec une image 32 bits.

A plus...
randriano
Messages postés
54
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
26 juillet 2011
-
Votre programme est génial, ça marche mais pour utiliser la classe CBtnBitmap dans un nouveau projet, j'ai fait comme suit:

Ajouter un attribut de type CBtnBitmap * dans la classe dialogue => m_pBtnFermer

Dans le constructeur
m_pBtnFermer = new CBtnBitmap(IDB_AKATONY, _T("OnOK()"));
m_pBtnFermer->SetStretch(true);

Dans OnInitDialog, une sorte de main() en MFC:
m_pBtnFermer->SubclassDlgItem(ID_AKATONY, this);
Avec ID_AKATONY l'ID d'un bouton existant à surcharger une image

Dans le destructeur du dialogue
if( m_pBtnFermer ) delete m_pBtnFermer;

Et ben, aucun changement sur mon bouton à ID = ID_AKATONY
MuPuF
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008
-
merci beaucoup, c'est noté
yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17 -
Pour MuPuf, concernant les menus (toujours en MFC).

// Dans le MainFrame.h
// Les index bitmap (autant que necessaire)
enum eIndexImages { M_NEW = 0, M_OPEN, M_AUTONUMBER };
// Les bitmap
CBitmap m_menuImages[M_AUTONUMBER];

// Dans le MainFrame.cpp, Méthode OnCreate()
// Attache les images aux menus
CMenu* mainMenu = GetMenu();
CMenu* subMenu = NULL;

if( mainMenu )
{
// Référence le menu [fichier] (indice 0)
subMenu = mainMenu->GetSubMenu(0);
if( subMenu )
{
// Menu Nouveau (charge ressource et affecte)
if( m_menuImages[M_NEW].LoadBitmap(IDB_MNU_NEW) )
subMenu->SetMenuItemBitmaps(ID_FILE_NEW,
MF_BYCOMMAND,
&m_menuImages[M_NEW],
NULL);
// Menu Ouvrir (idem)
if( m_menuImages[M_OPEN].LoadBitmap(IDB_MNU_OPEN) )
subMenu->SetMenuItemBitma(ID_FILE_OPEN,
MF_BYCOMMAND,
&m_menuImage[M_OPEN],
NULL);
}

// Passer au menu suivant [affichage] (indice 1)
subMenu = mainMenu->GetSubMenu(1);
// Ect...
}