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

MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008 - 6 août 2006 à 11:32
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

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
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 26
31 août 2007 à 21:48
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
18 août 2007 à 16:36
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
6 août 2006 à 22:04
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 26
6 août 2006 à 15:57
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...
}
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
6 août 2006 à 11:38
Re
Tu pourrais mettre l'exe (renommé en .ex_) s'il te plait, car il me manque une entente, je ne travaille pas en MFC et j'aimerais voir le résultat.
Sinon, la source est claire et bien commenté, je devrais pouvoir m'en sortir lol, sinon, sachez qu'il existe un super tuto sur msdn.
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
6 août 2006 à 11:32
Bonjour cette source m'interesse énormément, je suis en frain de faire une librairie permettant de gerer des skins a partir d'un XML (toutes les infos sur la fenetre sont dans le xml un peu comme pour les dialogues et les ressources). Et justement, il me fallait quelque chose du genre, maintenant il me reste plus qu'a voir comment marche les menus et les boutons owner drawn.
Rejoignez-nous