Nie wyświetla mi bitmapy

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:
 
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?

 
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;
}
1
hDC = GetDC(hwnd);
hBmp = CreateCompatibleBitmap(hDC, 100*4, 100);
hDCmem = CreateCompatibleDC(hDC);
SelectObject(hDCmem, hBmp);
ReleaseDC(hwnd, hDC);
hDC = hDCmem;
...

1 użytkowników online, w tym zalogowanych: 0, gości: 1