bitmap et dialog box en VC++???? - Programmation
Marsh Posté le 12-06-2001 à 12:59:55
Une DialogBox, je pense que c'est une feuille modale servant au dialogue..
Elle est créée, je suppose, par
#ifndef __FLAT__ // 16 bits, Win 3.11 (<= j'en suis fana)
{
DLGPROC lpProc;
lpProc = (DLGPROC)MakeProcInstance((FARPROC)lpInfoSpctr, hInst);
DialogBox(hInst, MAKEINTRESOURCE(INFOSPECTRE), hWnd, lpProc);
FreeProcInstance((FARPROC)lpProc);
}
#else // 32 bits Win 95,98,NT, ? 2000
DialogBox(hInst, MAKEINTRESOURCE(INFOSPECTRE), hWnd, lpInfoSpctr);
#endif
Le dessin de boutons Up/Down que j'avais fait charge le BitMap dans la section
switch (message)
{
case WM_INITDIALOG:
hFond = LoadBitmap (hInstance, "Fond" );
et on trace les boutons dans le WM_PAINT.
Le hInstance est celui de la feuille principale (l'application qui charge cette feuille) à mettre en "global".
Quand on quitte, on fait un
DeleteObject(BitMap);
EndDialog(hDlg, FALSE);
return TRUE;
pour libérer la mémoire occupée par le bitmap.
Si c'et une image qui sert ailleurs, elle peut être chargée dans le prog ppal, et dessinée sur chaque feuille où il y en a besoin.
Le DeleteObject() se fera lors du Quit du ppal.
Marsh Posté le 12-06-2001 à 12:07:18
salut
je repost ici un msg mais en + detaillé
j'arrive parfaitement a afficher une bitmap sur ma fenetre principale avec le code suivant appelé ds WM_PAINT
HBITMAP hFond;
HBITMAP hBlanc;
HBITMAP hNoir;
HDC hDcMem;
hFond = LoadBitmap (hInstance, "Fond" );
hBlanc = LoadBitmap (hInstance, cBlanc);
hNoir = LoadBitmap (hInstance, cNoir);
hDcMem = CreateCompatibleDC(hdc);
SelectObject(hDcMem,hFond);
BitBlt(hdc,20,10,60,60,hDcMem,0,0,SRCCOPY);
DeleteDC(hDcMem);
mais ds une dialog box j'y arrive pas, je pensais faire pareil, le prob c que j'arrive pas a recuperer le hInstance, c plante des que j'essaye.
Si vs avez la soluce?
MErci
a+