Bonjour.
J'ai un problème qui m'ennuie fortement depuis un certain temps. Je dois afficher des images dans mes boîtes de dialogue et pour cela j'utilise des CBitmap que j'insère dans des Picture Control.
Seulement, les images ne s'affichent pas directement à la création de la boîte de dialogue. Cela ne marche que si je tente de les afficher après (par exemple en appuyant sur un bouton qui redemandera d'afficher les images).
J'ai beau utiliser le même code dans la fonction OnInitDialog de ma boîte de dialogue que celui de l'événement de clic sur le bouton, il ne se passe rien.
Pour préciser, je ne suis pas en mode Document/Vue mais en mode application basée sur une boîte de dialogue.
Voilà mon code :
Merci d'avance !
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 BOOL BoiteDlg::OnInitDialog(){ [...] HBITMAP hbmp=(HBITMAP)LoadImage(NULL,(CString)"image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); CBitmap bmp; CBitmap *bmph=bmp.FromHandle(hbmp); CClientDC aDC(this); CRect rect; m_pictCtrl.GetWindowRect(&rect); //m_pictCtrl est la variable de contrôle du Picture Control ScreenToClient(&rect); int width=rect.Width(); int height=rect.Height(); //creation d'un contexte compatible CDC dcMem; dcMem.CreateCompatibleDC(&aDC); //selection de la bitmap CBitmap* pOld=dcMem.SelectObject(hbmp); //transfert aDC.BitBlt(rect.left,rect.top,width,height,&dcMem,0,0,SRCCOPY); //restauration aDC.SelectObject(pOld); DeleteObject(hbmp); }
Partager