Nie wyświetla mi bitmapy

Nie wyświetla mi bitmapy
gswidwa
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 5 lat
  • Postów:839
0

hej! :)
Przedstawię nieco sytuację.

  1. Mam funkcję tworzącą bitmapę o określonym rozmiarze (sprawdziłem, rozmiary są poprawnie przekazywane do funkcji) i zapisuję ją do uchwytu hBmp.
  2. Mam Kontekst hDC, który przypisuję do owej bitmapy.
    Kod:
Kopiuj
 
void CreateVButton::NarysujButton(int width, int height, DWORD flags){
    ClearDC();
    ClearBitmap();

    hBmp = CreateCompatibleBitmap(hDC, 100*4, 100);
    hDC = CreateCompatibleDC(NULL);
    SelectObject(hDC, hBmp);
    double srodek_X = width/2;
    double srodek_Y = height/2;

    for(int x=0; x<(int)srodek_X; x++)
     for(int y=0; y<(int)srodek_Y; y++)
      SetPixel(hDC, x, y, RGB(0, 0, 0));
    
    return;
}

Niestety nic mi się nie wyświetla na obszarze kontrolki.
Ale:
Jak wczytuję bitmapę z pliku .BMP widać wtedy tę bitmapę oraz obszar, który za pomocą pętli for() zamalowuje na czarno. jedyne co mi przychodzi do głowy to to, że źle wywołuje funkcję CreateCompatibleBitmap, ale na poprzednich kontrolkach robiłem identycznie i działało. Jakieś pomysły?

Kopiuj
 
void CreateVButton::NarysujButton(int width, int height, DWORD flags){
    ClearDC();
    ClearBitmap();

    hBmp = ( HBITMAP ) LoadImage( NULL, "Stop.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
    hDC = CreateCompatibleDC(NULL);
    SelectObject(hDC, hBmp);
    double srodek_X = width/2;
    double srodek_Y = height/2;

    for(int x=0; x<(int)srodek_X; x++)
     for(int y=0; y<(int)srodek_Y; y++)
      SetPixel(hDC, x, y, RGB(0, 0, 0));
    
    return;
}
06
  • Rejestracja:prawie 20 lat
  • Ostatnio:około rok
  • Postów:2440
1
Kopiuj
hDC = GetDC(hwnd);
hBmp = CreateCompatibleBitmap(hDC, 100*4, 100);
hDCmem = CreateCompatibleDC(hDC);
SelectObject(hDCmem, hBmp);
ReleaseDC(hwnd, hDC);
hDC = hDCmem;
...
gswidwa
Kurde przejrzałem wszystkie przykłady msdn a nie znalazłem tego...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.