Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinAPI, C++] Zrzut ekranu

Ostatnio zmodyfikowano 2011-08-22 10:23
Autor Wiadomość
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-20 14:00:21
a w którym miejscu?
66 main.cpp 'struct BITMAPINFOHEADER' has no member named 'bfReserved1' [/cpp]
P-39532
pekfos
» 2011-08-20 14:02:08
to nagłówek pliku.
http://www.januszg.hg.pl/teksty/budowa_pliku_bmp.html
drugi raz daje ci ten link a ty nic (!)
P-39533
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-20 14:06:02
C/C++
void screen( HWND okno, char * plik )
{
    HDC _dc = GetWindowDC( okno );
    RECT re;
    GetWindowRect( okno, & re );
    int w = re.right, h = re.bottom;
    HDC dc = CreateCompatibleDC( 0 );
    HBITMAP bm = CreateCompatibleBitmap( _dc, w, h );
    SelectObject( dc, bm );
    StretchBlt( dc, 0, 0, w, h, _dc, 0, 0, w, h, SRCCOPY );
    void * f = CreateFile( plik, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0 );
    void * buf = new char[ w * h * 3 ];
    GetObject( bm, 84, buf );
    HDC ddd = GetDC( 0 );
    HDC dc2 = CreateCompatibleDC( ddd );
    tagBITMAPINFO bi;
    bi.bmiHeader.biSize = sizeof( bi.bmiHeader );
    bi.bmiHeader.biWidth = w;
    bi.bmiHeader.biHeight = h;
    bi.bmiHeader.biPlanes = 1;
    bi.bmiHeader.biBitCount = 24;
    bi.bmiHeader.biCompression = 0;
    bi.bmiHeader.biSizeImage = w * h * 3;
   
    CreateDIBSection( dc, & bi, DIB_RGB_COLORS, & buf, 0, 0 );
    GetDIBits( dc, bm, 0, h, buf, & bi, DIB_RGB_COLORS );
   
    BITMAPFILEHEADER bif;
    bif.bfType = MAKEWORD( 'B', 'M' );
    bif.bfSize = w * h * 3 + 54;
    bif.bfOffBits = 54;
    bi.bmiHeader.biClrImportant = 0;
    bi.bmiHeader.biClrUsed = 0;
    bif.bfReserved1 = 0;
    bif.bfReserved2 = 0;
    bif.biXPelsPerMeter = 0;
    bif.biYPelsPerMeter = 0;
   
    BITMAPINFOHEADER bii;
    bii.biSize = 40;
    bii.biWidth = w;
    bii.biHeight = h;
    bii.biPlanes = 1;
    bii.biBitCount = 24;
    bii.biCompression = 0;
    bii.biSizeImage = w * h * 3;
   
   
    DWORD r;
    WriteFile( f, & bif, sizeof( bif ), & r, NULL );
    WriteFile( f, & bii, sizeof( bii ), & r, NULL );
    WriteFile( f, buf, w * h * 3, & r, NULL );
    CloseHandle( f );
}
To mój kod. Błędy przy nim:
58 main.cpp 'struct BITMAPFILEHEADER' has no member named 'biXPelsPerMeter'
. Ja już muszę spadać. Jakbyś mógł zamieścić gotowy kod...
P-39534
pekfos
» 2011-08-20 14:11:21
gotowców nie dajemy. nie wszystkie pola są z sygnatury pliku. skorzystaj z tego linka!! tam masz wszystko!!
możesz też użyć ZeroMemory dla tych struktur by wyzerować wszystko i potem ustawiać.

ZeroMemory():
http://msdn.microsoft.com/en-us/library/aa366920%28v=VS.85%29.aspx
P-39537
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-20 16:22:58
Wydrukowałem i przeczytałem dokładnie ten opis, ale jeszcze nie sprawdzałem. Jakby nie działało, to będę pisał :)
P-39547
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-22 10:23:46
Melduję posłusznie, panie generale: rozkaz wykonany, a wroga armia pod sztandarem Niewiedzy oddaliła się. Jednak szpieg o imieniu Nieskończona Chęć Poznawania Nowych Rzeczy podpowiada mi, że szykuje się kolejny powrót... :P Dzięki wielkie ;)
P-39669
1 2 3 4 « 5 »
Poprzednia strona Strona 5 z 5