bitmap et dialog box en VC++????

bitmap et dialog box en VC++???? - Programmation

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+

Reply

Marsh Posté le 12-06-2001 à 12:07:18   

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed