Forum » Programiranje » C++ problem
C++ problem

MV ::
Del zaslona bi rad spravil najprej v HBITMAP potem pa v datoteko.
 
Poskusil sem naslednje:
 
HDC hdc1 = CreateDC("DISPLAY",NULL,NULL,NULL);
HDC hdc2 = CreateCompatibleDC(hdc1);
 
BitBlt(hdc2, 0, 0, sirina, visina, hdc1, x1, y1, SRCCOPY);
HBITMAP bm =:: CreateCompatibleBitmap(hdc2, sirina, visina);
 
// Od tu dalje obdela sliko knjižnica
CxImage *slika = new CxImage();
slika->CreateFromHBITMAP(bm);
slika->Save("D:\\slika.bmp", CXIMAGE_FORMAT_BMP);
 
 
Problem je v tem, da je v datoteki slika.bmp vse črno.
Kaj bi lahko bilo narobe?
  
Poskusil sem naslednje:
HDC hdc1 = CreateDC("DISPLAY",NULL,NULL,NULL);
HDC hdc2 = CreateCompatibleDC(hdc1);
BitBlt(hdc2, 0, 0, sirina, visina, hdc1, x1, y1, SRCCOPY);
HBITMAP bm =:: CreateCompatibleBitmap(hdc2, sirina, visina);
// Od tu dalje obdela sliko knjižnica
CxImage *slika = new CxImage();
slika->CreateFromHBITMAP(bm);
slika->Save("D:\\slika.bmp", CXIMAGE_FORMAT_BMP);
Problem je v tem, da je v datoteki slika.bmp vse črno.
Kaj bi lahko bilo narobe?

MV ::
Malo sem spremenil. Zdaj dela OK.
 
 
CWnd wn;
HDC dstDC = ::GetDC(NULL);
HDC srcDC = ::GetWindowDC(wn.m_hWnd);
HDC memDC = ::CreateCompatibleDC(dstDC);
 
HBITMAP bm =::CreateCompatibleBitmap(dstDC, sirina, visina);
HBITMAP oldbm = (HBITMAP)::SelectObject(memDC,bm);
::BitBlt(memDC, 0, 0, sirina, visina, srcDC, x1, y1, SRCCOPY);
CWnd wn;
HDC dstDC = ::GetDC(NULL);
HDC srcDC = ::GetWindowDC(wn.m_hWnd);
HDC memDC = ::CreateCompatibleDC(dstDC);
HBITMAP bm =::CreateCompatibleBitmap(dstDC, sirina, visina);
HBITMAP oldbm = (HBITMAP)::SelectObject(memDC,bm);
::BitBlt(memDC, 0, 0, sirina, visina, srcDC, x1, y1, SRCCOPY);

boogie_xlr ::
Kaj moram narediti, da mi memdc ne bo pobrisal, kar je že blo narisano v view? Želim, da se samo updejta in magari čez preriše.
Invalidate sem že dal na FALSE, pa ni pomagalo.
Invalidate sem že dal na FALSE, pa ni pomagalo.
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | kako narediti program ki bere drugi programOddelek: Programiranje | 6240 (4553) | imagodei | 
| » | [C++]Kako narediti screenshot?Oddelek: Programiranje | 1634 (1205) | *ziga* | 
| » | C++ programirane v Open GL oz. Direct xOddelek: Programiranje | 3144 (2415) | Vesoljc | 
| » | OpenGL problemOddelek: Programiranje | 2652 (2218) | Gundolf | 
| » | OpenGL orr v ansi cOddelek: Programiranje | 1824 (1612) | igor12 | 
