Insertion d'un bitmap dans uns CStatic
Salut,
j'ai creer par l'editeur de ressources une DLG BOX dans laquelle j'ai insere
un controle CStatic (picture) et j'aimerais afficher dessus le contenu d'une image bitmap.
J'ai utiilise l'exemple donne dans MSDN c.a.d:
- creation d'un CStatic
- utilisation de la methode create
-affichage avec la methode LoadBitmaps
mais le controle reste vide à l'affichage
pourriez vous m'aider ?
merci!!
Insertion Bitmap dans un CStatic
salut,
en fai je ne voulais pas utiliser un CButton pour affichage d'une image mais un controle CStatic.
A l'origine je voulais creer une DLG box avec certains controles et une autre fenêtre en parallele afin d'aficher dans cette derniere le contenu d'un fichier bitmap et en fonction de l'activation des controles de la DLG j'affiche sur la 2eme fenetre le contenu d'un nouveau fichier bitmap;
et je ne savais pas quel type de fenetre utiliser pour l'affichage d'un BMP
mais je n'ai jamais eu de reponse!!
peux tu y repondre ?
il me semble que le plus simple serait d'utiliser un controle CStatic mais je me trompe peu etre!!
merci
Insertion d'un bitmap dans un CStatic
en fait, je ne suis pas sur mon pc pour vous montrer le code mais
c'est un copier coller de ce que j'ai trouve sur MSDN:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
CStatic *myStatic;
myStatic = new CStatic ;
// Create a child bitmap static control.
myStatic->Create(_T("my static"),
WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(10,10,150,50),
GetParent());
// Set the bitmap of the static control to be the
// system check-mark bitmap.
myStatic->SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP1)) ); |
avec IDB_BITMAP1 qui represente l'ID de ma ressource bitmap
et j'appelle ce code dans la fonction initDialog de la DLG adequate
[à l'avenir pense à mettre la balise de code ,Farscape]
re : intégrer une image dans un CStatic
Personnellement je passe par le code ci-dessous pour intégrer une image (BMP) dans un CStatic :
Code:
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
| //-------------------- Dans le .h de ta classe de ta boîte de dialogue
class CTaClass: public CDialog
{
...
CStatic m_img ;
...
}
//-------------------- Dans le .cpp de ta classe de ta boîte de dialogue
//---- Dans le DoDataExchange
DDX_Control(pDX, IDC_IMG_TEST , m_img );
...
//---- Dans l'initialisation de ton application par exemple
// Chargement de la bitmap en mémoire
HBITMAP hnd ;
hnd = (HBITMAP) LoadImage(0,pathImageBmp,IMAGE_BITMAP,0,0,
LR_LOADFROMFILE | LR_DEFAULTSIZE) ;
// indique que le CStatic receuille une image
m_img.ModifyStyle(0,SS_BITMAP,0);
// mise à jour de l'image dans le CStatic
m_img.SetBitmap(hnd) ; // once a handle is obtained to a bitmap object
// rend visible ton CStatic
m_img.ShowWindow(TRUE); |
Je l'ai déjà utilisé plusieurs fois et il n'y a aucun soucis.
Courage ! :D
Alice