Bitmap ongelma (SDK win32api)

Yritän piirtää dialogiin Suomen lippua jonka koko on 32x32.
Mutta jostain syystä, WM_PAINT:ssä kun katotaan kuvan kokoa niin se onkin 64x64.
Mikä tossa on vikana.

// ladataan kuva
bm = (HBITMAP)LoadImage(hInst,_T("j:\\pics\\finland.bmp"), IMAGE_BITMAP, LR_DEFAULTSIZE, LR_DEFAULTSIZE, LR_LOADFROMFILE);

// piirretään kuva dialogiin
WM_PAINT:
BITMAP bminfo;
HDC hdc = GetDC(hDlg);
HDC memdc = CreateCompatibleDC(hdc);
GetObject(bm,sizeof(bminfo),&bminfo);
HBITMAP old_hbitmap = (HBITMAP)SelectObject(memdc, bm);
BitBlt(hdc ,10 , 10, bminfo.bmWidth, bminfo.bmHeight, memdc, 0, 0, SRCCOPY);
ReleaseDC(hDlg,hdc);
DeleteDC(memdc);
return (INT_PTR)TRUE;
1412
Äänestä

Muut lukivat myös

Vastaukset 1

Vanhimmat

Hahah, heti kun kirjoitin ton tänne, niin huomasin erheeni :)
Eli vika kuvan latauksessa... ei saa käyttää RL_DEFAULTSIZE ja RL_LOADFROMFILE tai
Windows asettaa ton defaultin eikä ota tietoja filusta!

//Väärin
bm = (HBITMAP)LoadImage(hInst,_T("j:\\pics\\finland.bmp"), IMAGE_BITMAP, LR_DEFAULTSIZE, LR_DEFAULTSIZE, LR_LOADFROMFILE);

//Oikein
bm = (HBITMAP)LoadImage(hInst,_T("j:\\pics\\finland.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

Äänestä

Kommentoi aloitusta


hermotmenee kirjoitti:

Yritän piirtää dialogiin Suomen lippua jonka koko on 32x32.
Mutta jostain syystä, WM_PAINT:ssä kun katotaan kuvan kokoa niin se onkin 64x64.
Mikä tossa on vikana.

// ladataan kuva
bm = (HBITMAP)LoadImage(hInst,_T("j:\\pics\\finland.bmp"), IMAGE_BITMAP, LR_DEFAULTSIZE, LR_DEFAULTSIZE, LR_LOADFROMFILE);

// piirretään kuva dialogiin
WM_PAINT:
BITMAP bminfo;
HDC hdc = GetDC(hDlg);
HDC memdc = CreateCompatibleDC(hdc);
GetObject(bm,sizeof(bminfo),&bminfo);
HBITMAP old_hbitmap = (HBITMAP)SelectObject(memdc, bm);
BitBlt(hdc ,10 , 10, bminfo.bmWidth, bminfo.bmHeight, memdc, 0, 0, SRCCOPY);
ReleaseDC(hDlg,hdc);
DeleteDC(memdc);
return (INT_PTR)TRUE;

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu