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

[WinApi] Niekonwencjonalny sposób zapisu obrazu

Ostatnio zmodyfikowano 2014-01-09 19:50
Autor Wiadomość
AssSoft
Temat założony przez niniejszego użytkownika
[WinApi] Niekonwencjonalny sposób zapisu obrazu
» 2014-01-09 14:11:47
Stworzyłem prosty brudnopis. Chciałem umożliwić zapisywanie do bitmapy, uznałem jednak że mogę spróbować czegoś innego - zapisywaniu do pliku tekstowego.

C/C++
case ID_bp1:
{
    fstream bitzap;
    bitzap.open( "C:/programs/SimpleNote/save5.txt", ios::out );
    hdc = GetDC( hwnd );
    i = 0;
    Xpix = 1052;
    Ypix = 70;
    int Xpl = 0;
    while( i < 400000 )
    {
        pix = GetPixel( hdc, Xpix, Ypix );
        if( pix == blackpix )
        {
            bitzap << "0" << endl;
        }
        if( pix == whitepix )
        {
            bitzap << "1" << endl;
        }
        if( pix == redpix )
        {
            bitzap << "2" << endl;
        }
        if( pix == greenpix )
        {
            bitzap << "3" << endl;
        }
        if( pix == bluepix )
        {
            bitzap << "4" << endl;
        }
        if( Xpix == 1552 )
        {
            Ypix++;
            Xpix = 1052;
        }
        i++;
        Xpix++;
    }
}
break;
Co dziwne wszystko poprawnie się zapisuje. Problem pojawia się gdy próbuję odtworzyć zapisany obraz.
C/C++
case ID_bp2:
{
    fstream bitwczyt;
    bitwczyt.open( "C:/programs/SimpleNote/save5.txt", ios::in );
    hdc = GetDC( hwnd );
    i = 0;
    Xpix = 1052;
    Ypix = 70;
    int pixcol = 0;
    while( i < 400000 )
    {
        bitwczyt >> pixcol;
        if( pixcol == 0 )
        {
            SetPixel( hdc, Xpix, Ypix, blackpix );
        }
        if( pixcol == 1 )
        {
            SetPixel( hdc, Xpix, Ypix, whitepix );
        }
        if( pixcol == 2 )
        {
            SetPixel( hdc, Xpix, Ypix, redpix );
        }
        if( pixcol == 3 )
        {
            SetPixel( hdc, Xpix, Ypix, greenpix );
        }
        if( pixcol == 4 )
        {
            SetPixel( hdc, Xpix, Ypix, bluepix );
        }
        if( Xpix == 1552 )
        {
            Ypix++;
            Xpix = 1052;
        }
        Xpix++;
        i++;
    }
}
break;
Odtworzony obraz jest... krzywy. Dalej umieszczam resztę programu. Z początku miał to być zwykły notatnik na 300 linii kodu głównie dla tego jest tak nieuporządkowany.
C/C++
#include <iostream>
#include <windows.h>
#include <fstream>
#include <ctime>
#include <cstdlib>
#define ID_p1 1
#define ID_p2 2
#define ID_p3 3
#define ID_p4 4
#define ID_p5 5
#define ID_p6 6
#define ID_p7 7
#define ID_p8 8
#define ID_cp1 101
#define ID_cp2 102
#define ID_cp3 103
#define ID_cp4 104
#define ID_cp5 105
#define ID_cp6 106
#define ID_kp1 201
#define ID_kp2 202
#define ID_kp3 203
#define ID_kp4 204
#define ID_rp1 301
#define ID_rp2 302
#define ID_rp3 303
#define ID_rp4 304
#define ID_bp1 401
#define ID_bp2 402

struct RegElipse
{
    int Xpoz;
    int Ypoz;
    int Roz;
    int setFIG;
    HPEN pen;
    HBRUSH brush;
};
struct RegRectangle
{
    int Xpoz;
    int Ypoz;
    int Roz;
    int setFIG;
    HPEN pen;
    HBRUSH brush;
};
struct RegPaint
{
    int Xpoz;
    int Ypoz;
    int Roz;
    HPEN pen;
    HBRUSH brush;
};
DWORD setE = 0;
DWORD ilE = 0;
DWORD setR = 0;
DWORD ilR = 0;
DWORD setP = 0;
DWORD ilP = 0;

RegElipse RE[ 10000 ];
RegRectangle RR[ 10000 ];
RegPaint RP[ 100000 ];

using namespace std;
COLORREF redpix = RGB( 255, 0, 0 );
COLORREF bluepix = RGB( 0, 0, 255 );
COLORREF greenpix = RGB( 0, 255, 0 );
COLORREF blackpix = RGB( 0, 0, 0 );
COLORREF whitepix = RGB( 255, 255, 255 );
COLORREF pix;
int i;
int Xpix;
int Ypix;
BITMAP bmInfo;
WIN32_FIND_DATA File_Data;
HWND hText;
MSG Komunikat;
DWORD dlugosc;
LPSTR Bufor;
LPSTR Bufor2;
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
HWND hp1;
HWND hp2;
HWND hp3;
HWND hp4;
HWND hp5;
HWND hp6;
HWND hp7;
HWND hp8;
HWND hcp1;
HWND hcp2;
HWND hcp3;
HWND hcp4;
HWND hcp5;
HWND hcp6;
HWND hkp1;
HWND hkp2;
HWND hkp3;
HWND hkp4;
HWND hrp1;
HWND hrp2;
HWND hrp3;
HWND hrp4;
HWND hbp1;
HWND hbp2;
HWND hram;
HWND hText2;
HBITMAP hmbObraz;
HDC hdcNowy;
HDC hdc;
int odp;
string zaw;
bool f1 = 0;
int setFIG = 0;
int setCOL = 0;
int setROZ = 0;
bool Rys = false;
bool Przyc = false;
int roz = 20;
fstream zap;
DWORD dwRozmiar, dwPrzeczyt;
HANDLE hPlik;
HPEN standardP = CreatePen( PS_SOLID, 1, RGB( 0, 0, 0 ) );
HBRUSH standardB = CreateSolidBrush( RGB( 0, 0, 0 ) );
HPEN redP = CreatePen( PS_SOLID, 1, RGB( 255, 0, 0 ) );
HBRUSH redB = CreateSolidBrush( RGB( 255, 0, 0 ) );
HPEN greenP = CreatePen( PS_SOLID, 1, RGB( 0, 255, 0 ) );
HBRUSH greenB = CreateSolidBrush( RGB( 0, 255, 0 ) );
HPEN blueP = CreatePen( PS_SOLID, 1, RGB( 0, 0, 255 ) );
HBRUSH blueB = CreateSolidBrush( RGB( 0, 0, 255 ) );
HBRUSH whiteB = CreateSolidBrush( RGB( 255, 255, 255 ) );
HPEN oldP;
HBRUSH oldB;
int waitsec( float time )
{
    clock_t czasS;
    clock_t stoper = time * CLOCKS_PER_SEC;
    czasS = clock();
    while( clock() - czasS < stoper )
        ;
   
    return 0;
}

int waitmsec( float time )
{
    time = time / 1000;
    clock_t czasS;
    clock_t stoper = time * CLOCKS_PER_SEC;
    czasS = clock();
    while( clock() - czasS < stoper )
        ;
   
    return 0;
}

int waitmin( float time )
{
    time = time * 60;
    clock_t czasS;
    clock_t stoper = time * CLOCKS_PER_SEC;
    czasS = clock();
    while( clock() - czasS < stoper )
        ;
   
    return 0;
}
void start()
{
    if( FindFirstFile( TEXT( "C:/programs" ), & File_Data ) == INVALID_HANDLE_VALUE )
    {
        CreateDirectoryA( "C:/programs", NULL );
    }
    if( FindFirstFile( TEXT( "C:/programs/SimpleNote" ), & File_Data ) == INVALID_HANDLE_VALUE )
    {
        CreateDirectoryA( "C:/programs/SimpleNote", NULL );
    }
    if( FindFirstFile( TEXT( "C:/programs/SimpleNote/save1.txt" ), & File_Data ) == INVALID_HANDLE_VALUE )
    {
        zap.open( "C:/programs/SimpleNote/save1.txt", ios::out );
        zap << "";
        zap.close();
    }
    if( FindFirstFile( TEXT( "C:/programs/SimpleNote/save2.txt" ), & File_Data ) == INVALID_HANDLE_VALUE )
    {
        zap.open( "C:/programs/SimpleNote/save2.txt", ios::out );
        zap << "";
        zap.close();
    }
    if( FindFirstFile( TEXT( "C:/programs/SimpleNote/save3.txt" ), & File_Data ) == INVALID_HANDLE_VALUE )
    {
        zap.open( "C:/programs/SimpleNote/save3.txt", ios::out );
        zap << "";
        zap.close();
    }
    if( FindFirstFile( TEXT( "C:/programs/SimpleNote/save4.txt" ), & File_Data ) == INVALID_HANDLE_VALUE )
    {
        zap.open( "C:/programs/SimpleNote/save4.txt", ios::out );
        zap << "";
        zap.close();
    }
    if( FindFirstFile( TEXT( "C:/programs/SimpleNote/save5.txt" ), & File_Data ) == INVALID_HANDLE_VALUE )
    {
        zap.open( "C:/programs/SimpleNote/save5.txt", ios::out );
        zap << "";
        zap.close();
    }
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    // WYPEŁNIANIE STRUKTURY
    WNDCLASSEX wc;
   
    wc.cbSize = sizeof( WNDCLASSEX );
    wc.style = 0;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
    wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
    wc.lpszMenuName = NULL;
    wc.lpszClassName = TEXT( "Klasa Okienka" );
    wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
   
    // REJESTROWANIE KLASY OKNA
    if( !RegisterClassEx( & wc ) )
    {
        MessageBox( NULL, "Wysoka Komisja odmawia rejestracji tego okna!", "Niestety...",
        MB_ICONEXCLAMATION | MB_OK );
        return 1;
    }
   
    // TWORZENIE OKNA
    HWND hwnd;
   
    hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, TEXT( "Klasa Okienka" ), "SimpleNote", WS_OVERLAPPEDWINDOW | WS_MAXIMIZE | WS_VSCROLL | WS_HSCROLL,
    CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL );
   
    if( hwnd == NULL )
    {
        MessageBox( NULL, "Okno odmówiło przyjścia na świat!", "Ale kicha...", MB_ICONEXCLAMATION );
        return 1;
    }
   
    ShowWindow( hwnd, nCmdShow ); // Pokaż okienko...
    UpdateWindow( hwnd );
   
   
    hText = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER |
    WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 1, 70, 1050, 800, hwnd, NULL, hInstance, NULL );
   
    hText2 = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER |
    WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 810, 36, 200, 30, hwnd, NULL, hInstance, NULL );
    SetWindowText( hText2, "podaj ścieżke do pliku" );
   
   
    hram = CreateWindowEx( 0, "BUTTON", "brudnopis", WS_CHILD | BS_GROUPBOX | WS_VISIBLE,
    1052, 70, 500, 800, hwnd, NULL, hInstance, NULL );
   
    hp1 = CreateWindowEx( 0, "BUTTON", "Zapisz w slot1", WS_CHILD | WS_VISIBLE,
    5, 5, 150, 30, hwnd,( HMENU ) ID_p1, hInstance, NULL );
    hp2 = CreateWindowEx( 0, "BUTTON", "Zapisz w slot2", WS_CHILD | WS_VISIBLE,
    156, 5, 150, 30, hwnd,( HMENU ) ID_p2, hInstance, NULL );
    hp3 = CreateWindowEx( 0, "BUTTON", "Zapisz w slot3", WS_CHILD | WS_VISIBLE,
    307, 5, 150, 30, hwnd,( HMENU ) ID_p3, hInstance, NULL );
    hp4 = CreateWindowEx( 0, "BUTTON", "Zapisz w slot4", WS_CHILD | WS_VISIBLE,
    458, 5, 150, 30, hwnd,( HMENU ) ID_p4, hInstance, NULL );
   
    hp5 = CreateWindowEx( 0, "BUTTON", "Wczytaj slot1", WS_CHILD | WS_VISIBLE,
    5, 36, 150, 30, hwnd,( HMENU ) ID_p5, hInstance, NULL );
    hp6 = CreateWindowEx( 0, "BUTTON", "Wczytaj slot2", WS_CHILD | WS_VISIBLE,
    156, 36, 150, 30, hwnd,( HMENU ) ID_p6, hInstance, NULL );
    hp7 = CreateWindowEx( 0, "BUTTON", "Wczytaj slot3", WS_CHILD | WS_VISIBLE,
    307, 36, 150, 30, hwnd,( HMENU ) ID_p7, hInstance, NULL );
    hp8 = CreateWindowEx( 0, "BUTTON", "Wczytaj slot4", WS_CHILD | WS_VISIBLE,
    458, 36, 150, 30, hwnd,( HMENU ) ID_p8, hInstance, NULL );
   
    hcp1 = CreateWindowEx( 0, "BUTTON", "zapisz w...", WS_CHILD | WS_VISIBLE,
    609, 5, 200, 30, hwnd,( HMENU ) ID_cp1, hInstance, NULL );
    hcp2 = CreateWindowEx( 0, "BUTTON", "wczytaj z...", WS_CHILD | WS_VISIBLE,
    609, 36, 200, 30, hwnd,( HMENU ) ID_cp2, hInstance, NULL );
    hcp3 = CreateWindowEx( 0, "BUTTON", "Usuń plik", WS_CHILD | WS_VISIBLE,
    810, 5, 200, 30, hwnd,( HMENU ) ID_cp3, hInstance, NULL );
    hcp4 = CreateWindowEx( 0, "BUTTON", "Rysuj elipse", WS_CHILD | WS_VISIBLE,
    1011, 5, 150, 30, hwnd,( HMENU ) ID_cp4, hInstance, NULL );
    hcp5 = CreateWindowEx( 0, "BUTTON", "Rysuj prostokąt", WS_CHILD | WS_VISIBLE,
    1162, 5, 150, 30, hwnd,( HMENU ) ID_cp5, hInstance, NULL );
    hcp6 = CreateWindowEx( 0, "BUTTON", "Rysik", WS_CHILD | WS_VISIBLE,
    1313, 5, 75, 30, hwnd,( HMENU ) ID_cp6, hInstance, NULL );
   
    hkp1 = CreateWindowEx( 0, "BUTTON", "czer.", WS_CHILD | WS_VISIBLE,
    1011, 36, 75, 30, hwnd,( HMENU ) ID_kp1, hInstance, NULL );
    hkp2 = CreateWindowEx( 0, "BUTTON", "ziel.", WS_CHILD | WS_VISIBLE,
    1086, 36, 75, 30, hwnd,( HMENU ) ID_kp2, hInstance, NULL );
    hkp3 = CreateWindowEx( 0, "BUTTON", "nieb.", WS_CHILD | WS_VISIBLE,
    1161, 36, 75, 30, hwnd,( HMENU ) ID_kp3, hInstance, NULL );
    hkp4 = CreateWindowEx( 0, "BUTTON", "czar.", WS_CHILD | WS_VISIBLE,
    1236, 36, 75, 30, hwnd,( HMENU ) ID_kp4, hInstance, NULL );
   
    hrp1 = CreateWindowEx( 0, "BUTTON", "mał.", WS_CHILD | WS_VISIBLE,
    1312, 36, 75, 30, hwnd,( HMENU ) ID_rp1, hInstance, NULL );
    hrp2 = CreateWindowEx( 0, "BUTTON", "śred.", WS_CHILD | WS_VISIBLE,
    1387, 36, 75, 30, hwnd,( HMENU ) ID_rp2, hInstance, NULL );
    hrp3 = CreateWindowEx( 0, "BUTTON", "duży.", WS_CHILD | WS_VISIBLE,
    1463, 36, 75, 30, hwnd,( HMENU ) ID_rp3, hInstance, NULL );
    hrp4 = CreateWindowEx( 0, "BUTTON", "bar. duży", WS_CHILD | WS_VISIBLE,
    1538, 36, 75, 30, hwnd,( HMENU ) ID_rp4, hInstance, NULL );
   
    hbp1 = CreateWindowEx( 0, "BUTTON", "Zap. bitmapę", WS_CHILD | WS_VISIBLE,
    1388, 5, 100, 30, hwnd,( HMENU ) ID_bp1, hInstance, NULL );
    hbp2 = CreateWindowEx( 0, "BUTTON", "wczyt. bitmapę", WS_CHILD | WS_VISIBLE,
    1489, 5, 100, 30, hwnd,( HMENU ) ID_bp2, hInstance, NULL );
   
    hdc = GetDC( hwnd );
    hmbObraz =( HBITMAP ) LoadImage( NULL, "C:/programs/SimpleNote/DATA/Snote_mainimage.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
    hdcNowy = CreateCompatibleDC( hdc );
    SelectObject( hdcNowy, hmbObraz );
    GetObject( hmbObraz, sizeof( bmInfo ), & bmInfo );
    hdc = GetDC( hwnd );
    BitBlt( hdc, 1, 870, bmInfo.bmWidth, bmInfo.bmHeight, hdcNowy, 0, 0, SRCCOPY );
    ReleaseDC( hwnd, hdc );
   
    // Pętla komunikatów
    while( GetMessage( & Komunikat, NULL, 0, 0 ) )
    {
        TranslateMessage( & Komunikat );
        DispatchMessage( & Komunikat );
    }
    return Komunikat.wParam;
}

// OBSŁUGA ZDARZEŃ
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
    case WM_CLOSE:
        DestroyWindow( hwnd );
        break;
       
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
    case WM_PAINT:
    paint:;
        PAINTSTRUCT ps; // deklaracja struktury
        hdc = BeginPaint( hwnd, & ps );
        hmbObraz =( HBITMAP ) LoadImage( NULL, "C:/programs/SimpleNote/DATA/Snote_mainimage.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
        hdcNowy = CreateCompatibleDC( hdc );
        SelectObject( hdcNowy, hmbObraz );
        GetObject( hmbObraz, sizeof( bmInfo ), & bmInfo );
        BitBlt( hdc, 1, 871, bmInfo.bmWidth, bmInfo.bmHeight, hdcNowy, 0, 0, SRCCOPY );
        ilE = 0;
        while( ilE <= setE )
        {
            oldP =( HPEN ) SelectObject( hdc, RE[ ilE ].pen );
            if( RE[ ilE ].setFIG == 1 )
            {
                oldB =( HBRUSH ) SelectObject( hdc, RE[ ilE ].brush );
            }
            else
            {
                oldB =( HBRUSH ) SelectObject( hdc, whiteB );
            }
            Ellipse( hdc, RE[ ilE ].Xpoz - 3, RE[ ilE ].Ypoz - 3, RE[ ilE ].Xpoz + RE[ ilE ].Roz, RE[ ilE ].Ypoz + RE[ ilE ].Roz );
            ilE++;
        }
        ilR = 0;
        while( ilR <= setR )
        {
            oldP =( HPEN ) SelectObject( hdc, RR[ ilR ].pen );
            if( RR[ ilR ].setFIG == 1 )
            {
                oldB =( HBRUSH ) SelectObject( hdc, RR[ ilR ].brush );
            }
            else
            {
                oldB =( HBRUSH ) SelectObject( hdc, whiteB );
            }
            Rectangle( hdc, RR[ ilR ].Xpoz - 3, RR[ ilR ].Ypoz - 3, RR[ ilR ].Xpoz +( RR[ ilR ].Roz * 2 ), RR[ ilR ].Ypoz + RR[ ilR ].Roz );
            ilR++;
        }
        ilP = 0;
        while( ilP <= setP )
        {
            oldP =( HPEN ) SelectObject( hdc, RP[ ilP ].pen );
            oldB =( HBRUSH ) SelectObject( hdc, RP[ ilP ].brush );
            Ellipse( hdc, RP[ ilP ].Xpoz - 3, RP[ ilP ].Ypoz - 3, RP[ ilP ].Xpoz +( RP[ ilP ].Roz / 2 ), RP[ ilP ].Ypoz +( RP[ ilP ].Roz / 2 ) );
            ilP++;
        }
       
       
        ReleaseDC( hwnd, hdc );
        EndPaint( hwnd, & ps ); // zwalniamy hdc
        break;
    case WM_LBUTTONDOWN:
        {
            hdc = GetDC( hwnd );
            if( setCOL == 0 )
            {
                oldP =( HPEN ) SelectObject( hdc, standardP );
                oldB =( HBRUSH ) SelectObject( hdc, whiteB );
                RE[ setE ].pen = standardP;
                RE[ setE ].brush = whiteB;
                RR[ setR ].pen = standardP;
                RR[ setR ].brush = whiteB;
            }
            if( setCOL == 1 )
            {
                oldP =( HPEN ) SelectObject( hdc, redP );
                oldB =( HBRUSH ) SelectObject( hdc, whiteB );
                RE[ setE ].pen = redP;
                RE[ setE ].brush = whiteB;
                RR[ setR ].pen = redP;
                RR[ setR ].brush = whiteB;
            }
            if( setCOL == 2 )
            {
                oldP =( HPEN ) SelectObject( hdc, greenP );
                oldB =( HBRUSH ) SelectObject( hdc, whiteB );
                RE[ setE ].pen = greenP;
                RE[ setE ].brush = whiteB;
                RR[ setR ].pen = greenP;
                RR[ setR ].brush = whiteB;
            }
            if( setCOL == 3 )
            {
                oldP =( HPEN ) SelectObject( hdc, blueP );
                oldB =( HBRUSH ) SelectObject( hdc, whiteB );
                RE[ setE ].pen = blueP;
                RE[ setE ].brush = whiteB;
                RR[ setR ].pen = blueP;
                RR[ setR ].brush = whiteB;
            }
            if( setCOL == 4 )
            {
                oldP =( HPEN ) SelectObject( hdc, standardP );
                oldB =( HBRUSH ) SelectObject( hdc, whiteB );
                RE[ setE ].pen = standardP;
                RE[ setE ].brush = whiteB;
                RR[ setR ].pen = standardP;
                RR[ setR ].brush = whiteB;
            }
           
            if( setROZ == 0 )
            {
                roz = 20;
            }
            if( setROZ == 1 )
            {
                roz = 30;
            }
            if( setROZ == 2 )
            {
                roz = 40;
            }
            if( setROZ == 3 )
            {
                roz = 60;
            }
            if( setFIG == 1 )
            {
                if( LOWORD( lParam ) < 1050 || LOWORD( lParam ) > 1552 )
                {
                    goto endpaint;
                }
                if( HIWORD( lParam ) < 70 || HIWORD( lParam ) > 870 )
                {
                    goto endpaint;
                }
                Ellipse( hdc, LOWORD( lParam ) - 3, HIWORD( lParam ) - 3, LOWORD( lParam ) + roz, HIWORD( lParam ) + roz );
                RE[ setE ].Xpoz = LOWORD( lParam );
                RE[ setE ].Ypoz = HIWORD( lParam );
                RE[ setE ].Roz = roz;
                RE[ setE ].setFIG = 0;
                setE++;
            }
            if( setFIG == 2 )
            {
                if( LOWORD( lParam ) < 1050 || LOWORD( lParam ) > 1537 )
                {
                    goto endpaint;
                }
                if( HIWORD( lParam ) < 70 || HIWORD( lParam ) > 855 )
                {
                    goto endpaint;
                }
               
                Rectangle( hdc, LOWORD( lParam ) - 3, HIWORD( lParam ) - 3, LOWORD( lParam ) +( roz * 2 ), HIWORD( lParam ) + roz );
                RR[ setR ].Xpoz = LOWORD( lParam );
                RR[ setR ].Ypoz = HIWORD( lParam );
                RR[ setR ].Roz = roz;
                RR[ setR ].setFIG = 0;
                setR++;
            }
            if( Rys == true )
            {
                Przyc = true;
                SendMessage( hwnd, WM_MOUSEMOVE, wParam, lParam );
            }
            endpaint:;
            ReleaseDC( hwnd, hdc );
            goto paint;
        }
        break;
    case WM_LBUTTONUP:
        Przyc = false;
        break;
    case WM_RBUTTONDOWN:
        {
            hdc = GetDC( hwnd );
            if( setCOL == 0 )
            {
                oldP =( HPEN ) SelectObject( hdc, standardP );
                oldB =( HBRUSH ) SelectObject( hdc, standardB );
                RE[ setE ].pen =( HPEN ) SelectObject( hdc, standardP );
                RE[ setE ].brush =( HBRUSH ) SelectObject( hdc, standardB );
                RR[ setR ].pen =( HPEN ) SelectObject( hdc, standardP );
                RR[ setR ].brush =( HBRUSH ) SelectObject( hdc, standardB );
            }
            if( setCOL == 1 )
            {
                oldP =( HPEN ) SelectObject( hdc, redP );
                oldB =( HBRUSH ) SelectObject( hdc, redB );
                RE[ setE ].pen =( HPEN ) SelectObject( hdc, redP );
                RE[ setE ].brush =( HBRUSH ) SelectObject( hdc, redB );
                RR[ setR ].pen =( HPEN ) SelectObject( hdc, redP );
                RR[ setR ].brush =( HBRUSH ) SelectObject( hdc, redB );
            }
            if( setCOL == 2 )
            {
                oldP =( HPEN ) SelectObject( hdc, greenP );
                oldB =( HBRUSH ) SelectObject( hdc, greenB );
                RE[ setE ].pen =( HPEN ) SelectObject( hdc, greenP );
                RE[ setE ].brush =( HBRUSH ) SelectObject( hdc, greenB );
                RR[ setR ].pen =( HPEN ) SelectObject( hdc, greenP );
                RR[ setR ].brush =( HBRUSH ) SelectObject( hdc, greenB );
            }
            if( setCOL == 3 )
            {
                oldP =( HPEN ) SelectObject( hdc, blueP );
                oldB =( HBRUSH ) SelectObject( hdc, blueB );
                RE[ setE ].pen =( HPEN ) SelectObject( hdc, blueP );
                RE[ setE ].brush =( HBRUSH ) SelectObject( hdc, blueB );
                RR[ setR ].pen =( HPEN ) SelectObject( hdc, blueP );
                RR[ setR ].brush =( HBRUSH ) SelectObject( hdc, blueB );
            }
            if( setCOL == 4 )
            {
                oldP =( HPEN ) SelectObject( hdc, standardP );
                oldB =( HBRUSH ) SelectObject( hdc, standardB );
                RE[ setE ].pen =( HPEN ) SelectObject( hdc, standardP );
                RE[ setE ].brush =( HBRUSH ) SelectObject( hdc, standardB );
                RR[ setR ].pen =( HPEN ) SelectObject( hdc, standardP );
                RR[ setR ].brush =( HBRUSH ) SelectObject( hdc, standardB );
            }
           
            if( setROZ == 0 )
            {
                roz = 20;
            }
            if( setROZ == 1 )
            {
                roz = 30;
            }
            if( setROZ == 2 )
            {
                roz = 40;
            }
            if( setROZ == 3 )
            {
                roz = 60;
            }
           
            if( setFIG == 1 )
            {
                if( LOWORD( lParam ) < 1030 || LOWORD( lParam ) > 1530 )
                {
                    goto endpaint2;
                }
                if( HIWORD( lParam ) < 50 || HIWORD( lParam ) > 840 )
                {
                    goto endpaint2;
                }
                Ellipse( hdc, LOWORD( lParam ) - 3, HIWORD( lParam ) - 3, LOWORD( lParam ) + roz, HIWORD( lParam ) + roz );
                RE[ setE ].Xpoz = LOWORD( lParam );
                RE[ setE ].Ypoz = HIWORD( lParam );
                RE[ setE ].Roz = roz;
                RE[ setE ].setFIG = 1;
                setE++;
               
            }
            if( setFIG == 2 )
            {
                if( LOWORD( lParam ) < 1050 || LOWORD( lParam ) > 1537 )
                {
                    goto endpaint2;
                }
                if( HIWORD( lParam ) < 70 || HIWORD( lParam ) > 855 )
                {
                    goto endpaint2;
                }
                Rectangle( hdc, LOWORD( lParam ) - 3, HIWORD( lParam ) - 3, LOWORD( lParam ) +( roz * 2 ), HIWORD( lParam ) + roz );
                RR[ setR ].Xpoz = LOWORD( lParam );
                RR[ setR ].Ypoz = HIWORD( lParam );
                RR[ setR ].Roz = roz;
                RR[ setR ].setFIG = 1;
                setR++;
            }
            ReleaseDC( hwnd, hdc );
            goto paint;
            endpaint2:;
        }
        break;
    case WM_MOUSEMOVE:
        if( Przyc )
        {
            hdc = GetDC( hwnd );
            if( setCOL == 0 )
            {
                oldP =( HPEN ) SelectObject( hdc, standardP );
                oldB =( HBRUSH ) SelectObject( hdc, standardB );
                RP[ setP ].pen =( HPEN ) SelectObject( hdc, standardP );
                RP[ setP ].brush =( HBRUSH ) SelectObject( hdc, standardB );
            }
            if( setCOL == 1 )
            {
                oldP =( HPEN ) SelectObject( hdc, redP );
                oldB =( HBRUSH ) SelectObject( hdc, redB );
                RP[ setP ].pen =( HPEN ) SelectObject( hdc, redP );
                RP[ setP ].brush =( HBRUSH ) SelectObject( hdc, redB );
            }
            if( setCOL == 2 )
            {
                oldP =( HPEN ) SelectObject( hdc, greenP );
                oldB =( HBRUSH ) SelectObject( hdc, greenB );
                RP[ setP ].pen =( HPEN ) SelectObject( hdc, greenP );
                RP[ setP ].brush =( HBRUSH ) SelectObject( hdc, greenB );
            }
            if( setCOL == 3 )
            {
                oldP =( HPEN ) SelectObject( hdc, blueP );
                oldB =( HBRUSH ) SelectObject( hdc, blueB );
                RP[ setP ].pen =( HPEN ) SelectObject( hdc, blueP );
                RP[ setP ].brush =( HBRUSH ) SelectObject( hdc, blueB );
            }
            if( setCOL == 4 )
            {
                oldP =( HPEN ) SelectObject( hdc, standardP );
                oldB =( HBRUSH ) SelectObject( hdc, standardB );
                RP[ setP ].pen =( HPEN ) SelectObject( hdc, standardP );
                RP[ setP ].brush =( HBRUSH ) SelectObject( hdc, standardB );
            }
            if( setROZ == 0 )
            {
                roz = 20;
            }
            if( setROZ == 1 )
            {
                roz = 30;
            }
            if( setROZ == 2 )
            {
                roz = 40;
            }
            if( setROZ == 3 )
            {
                roz = 60;
            }
            if( LOWORD( lParam ) < 1050 || LOWORD( lParam ) > 1537 )
            {
                goto endpaint3;
            }
            if( HIWORD( lParam ) < 70 || HIWORD( lParam ) > 855 )
            {
                goto endpaint3;
            }
            Ellipse( hdc, LOWORD( lParam ) - 3, HIWORD( lParam ) - 3, LOWORD( lParam ) +( roz / 2 ), HIWORD( lParam ) +( roz / 2 ) );
            RP[ setP ].Xpoz = LOWORD( lParam );
            RP[ setP ].Ypoz = HIWORD( lParam );
            RP[ setP ].Roz = roz;
            setP++;
            endpaint3:;
            ReleaseDC( hwnd, hdc );
        }
        break;
       
    case WM_COMMAND:
        dlugosc = GetWindowTextLength( hText );
        Bufor =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
        GetWindowText( hText, Bufor, dlugosc + 1 );
        switch( wParam )
        {
        case ID_p1:
            start();
            zap.open( "C:/programs/SimpleNote/save1.txt", ios::in );
            zap >> zaw;
            if( zaw.length() > 1 )
            {
                odp = MessageBox( NULL, TEXT( "W slocie 1 znajduje się już tekst. Czy chcesz nadpisać?" ), TEXT( "Nadpisywanie" ), MB_TASKMODAL | MB_YESNO | MB_ICONQUESTION );
                if( odp == IDNO )
                {
                    break;
                }
            }
            zap.close();
            zap.open( "C:/programs/SimpleNote/save1.txt", ios::out );
            zap << Bufor;
            zap.close();
            MessageBox( NULL, TEXT( "Zakończono zapisywanie" ), TEXT( "Informacja" ), MB_OK | MB_ICONINFORMATION );
            break;
        case ID_p2:
            start();
            zap.open( "C:/programs/SimpleNote/save2.txt", ios::in );
            zap >> zaw;
            if( zaw.length() > 1 )
            {
                odp = MessageBox( NULL, TEXT( "W slocie 2 znajduje się już tekst. Czy chcesz nadpisać?" ), TEXT( "Nadpisywanie" ), MB_TASKMODAL | MB_YESNO | MB_ICONQUESTION );
                if( odp == IDNO )
                {
                    break;
                }
            }
            zap.close();
            zap.open( "C:/programs/SimpleNote/save2.txt", ios::out );
            zap << Bufor;
            zap.close();
            MessageBox( NULL, TEXT( "Zakończono zapisywanie" ), TEXT( "Informacja" ), MB_OK | MB_ICONINFORMATION );
            break;
        case ID_p3:
            start();
            zap.open( "C:/programs/SimpleNote/save3.txt", ios::in );
            zap >> zaw;
            if( zaw.length() > 1 )
            {
                odp = MessageBox( NULL, TEXT( "W slocie 3 znajduje się już tekst. Czy chcesz nadpisać?" ), TEXT( "Nadpisywanie" ), MB_TASKMODAL | MB_YESNO | MB_ICONQUESTION );
                if( odp == IDNO )
                {
                    break;
                }
            }
            zap.close();
            zap.open( "C:/programs/SimpleNote/save3.txt", ios::out );
            zap << Bufor;
            zap.close();
            MessageBox( NULL, TEXT( "Zakończono zapisywanie" ), TEXT( "Informacja" ), MB_OK | MB_ICONINFORMATION );
            break;
        case ID_p4:
            start();
            zap.open( "C:/programs/SimpleNote/save4.txt", ios::in );
            zap >> zaw;
            if( zaw.length() > 1 )
            {
                odp = MessageBox( NULL, TEXT( "W slocie 4 znajduje się już tekst. Czy chcesz nadpisać?" ), TEXT( "Nadpisywanie" ), MB_TASKMODAL | MB_YESNO | MB_ICONQUESTION );
                if( odp == IDNO )
                {
                    break;
                }
            }
            zap.close();
            zap.open( "C:/programs/SimpleNote/save4.txt", ios::out );
            zap << Bufor;
            zap.close();
            MessageBox( NULL, TEXT( "Zakończono zapisywanie" ), TEXT( "Informacja" ), MB_OK | MB_ICONINFORMATION );
            break;
        case ID_p5:
           
            hPlik = CreateFile( "C:/programs/SimpleNote/save1.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
            if( hPlik == INVALID_HANDLE_VALUE ) {
                MessageBox( NULL, "Nie można otworzyć pliku.", "A to pech!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            dwRozmiar = GetFileSize( hPlik, NULL );
            if( dwRozmiar == 0xFFFFFFFF ) {
                MessageBox( NULL, "Nieprawidłowy rozmiar pliku!", "Niedobrze...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 );
            if( Bufor == NULL ) {
                MessageBox( NULL, "Za mało pamięci!", "Ale wiocha...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwPrzeczyt, NULL ) ) {
                MessageBox( NULL, "Błąd czytania z pliku", "Dupa blada!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor[ dwRozmiar ] = 0; // dodaj zero na końcu stringa
            SetWindowText( hText, Bufor ); // zrób coś z tekstem, np. wyświetl go
           
            GlobalFree( Bufor ); // Zwolnij bufor
            CloseHandle( hPlik ); // Zamknij plik
           
            break;
        case ID_p6:
            hPlik = CreateFile( "C:/programs/SimpleNote/save2.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
            if( hPlik == INVALID_HANDLE_VALUE ) {
                MessageBox( NULL, "Nie można otworzyć pliku.", "A to pech!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            dwRozmiar = GetFileSize( hPlik, NULL );
            if( dwRozmiar == 0xFFFFFFFF ) {
                MessageBox( NULL, "Nieprawidłowy rozmiar pliku!", "Niedobrze...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 );
            if( Bufor == NULL ) {
                MessageBox( NULL, "Za mało pamięci!", "Ale wiocha...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwPrzeczyt, NULL ) ) {
                MessageBox( NULL, "Błąd czytania z pliku", "Dupa blada!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor[ dwRozmiar ] = 0; // dodaj zero na końcu stringa
            SetWindowText( hText, Bufor ); // zrób coś z tekstem, np. wyświetl go
           
            GlobalFree( Bufor ); // Zwolnij bufor
            CloseHandle( hPlik ); // Zamknij plik
            break;
        case ID_p7:
            hPlik = CreateFile( "C:/programs/SimpleNote/save3.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
            if( hPlik == INVALID_HANDLE_VALUE ) {
                MessageBox( NULL, "Nie można otworzyć pliku.", "A to pech!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            dwRozmiar = GetFileSize( hPlik, NULL );
            if( dwRozmiar == 0xFFFFFFFF ) {
                MessageBox( NULL, "Nieprawidłowy rozmiar pliku!", "Niedobrze...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 );
            if( Bufor == NULL ) {
                MessageBox( NULL, "Za mało pamięci!", "Ale wiocha...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwPrzeczyt, NULL ) ) {
                MessageBox( NULL, "Błąd czytania z pliku", "Dupa blada!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor[ dwRozmiar ] = 0; // dodaj zero na końcu stringa
            SetWindowText( hText, Bufor ); // zrób coś z tekstem, np. wyświetl go
           
            GlobalFree( Bufor ); // Zwolnij bufor
            CloseHandle( hPlik ); // Zamknij plik
        case ID_p8:
            hPlik = CreateFile( "C:/programs/SimpleNote/save4.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
            if( hPlik == INVALID_HANDLE_VALUE ) {
                MessageBox( NULL, "Nie można otworzyć pliku.", "A to pech!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            dwRozmiar = GetFileSize( hPlik, NULL );
            if( dwRozmiar == 0xFFFFFFFF ) {
                MessageBox( NULL, "Nieprawidłowy rozmiar pliku!", "Niedobrze...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 );
            if( Bufor == NULL ) {
                MessageBox( NULL, "Za mało pamięci!", "Ale wiocha...", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwPrzeczyt, NULL ) ) {
                MessageBox( NULL, "Błąd czytania z pliku", "Dupa blada!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor[ dwRozmiar ] = 0; // dodaj zero na końcu stringa
            SetWindowText( hText, Bufor ); // zrób coś z tekstem, np. wyświetl go
           
            GlobalFree( Bufor ); // Zwolnij bufor
            CloseHandle( hPlik ); // Zamknij plik
        case ID_cp1:
            dlugosc = GetWindowTextLength( hText );
            Bufor =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
            GetWindowText( hText, Bufor, dlugosc + 1 );
            dlugosc = GetWindowTextLength( hText2 );
            Bufor2 =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
            GetWindowText( hText2, Bufor2, dlugosc + 1 );
            zap.open( Bufor2, ios::out );
            if( Bufor2 == "" || Bufor2 == "podaj ścieżkę do pliku" )
            {
                MessageBox( NULL, TEXT( "brak ścieżki do pliku" ), TEXT( "Błąd!" ), MB_TASKMODAL | MB_OK | MB_ICONWARNING );
                break;
            }
            zap << Bufor;
            zap.close();
            MessageBox( NULL, TEXT( "Zakończono zapisywanie" ), TEXT( "Informacja" ), MB_OK | MB_ICONINFORMATION );
            break;
        case ID_cp2:
            dlugosc = GetWindowTextLength( hText2 );
            Bufor2 =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
            GetWindowText( hText2, Bufor2, dlugosc + 1 );
            hPlik = CreateFile( Bufor2, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
            if( hPlik == INVALID_HANDLE_VALUE ) {
                MessageBox( NULL, "Nie można otworzyć pliku.", "Błąd!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            dwRozmiar = GetFileSize( hPlik, NULL );
            if( dwRozmiar == 0xFFFFFFFF ) {
                MessageBox( NULL, "Nieprawidłowy rozmiar pliku!", "Błąd!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 );
            if( Bufor == NULL ) {
                MessageBox( NULL, "Za mało pamięci!", "Błąd!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwPrzeczyt, NULL ) ) {
                MessageBox( NULL, "Błąd czytania z pliku", "Błąd!", MB_ICONEXCLAMATION );
                PostQuitMessage( 0 ); // Zakończ program
            }
           
            Bufor[ dwRozmiar ] = 0; // dodaj zero na końcu stringa
            SetWindowText( hText, Bufor ); // zrób coś z tekstem, np. wyświetl go
           
            GlobalFree( Bufor ); // Zwolnij bufor
            CloseHandle( hPlik ); // Zamknij plik
            break;
        case ID_cp3:
            dlugosc = GetWindowTextLength( hText2 );
            Bufor2 =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
            GetWindowText( hText2, Bufor2, dlugosc + 1 );
            DeleteFileA( Bufor2 );
            MessageBox( NULL, "Zakończono usuwanie", "Informacja", MB_ICONINFORMATION );
            break;
        case ID_cp4:
            if( setFIG != 1 )
            {
                setFIG = 1;
                Rys = false;
                Przyc = false;
            }
            else
            {
                setFIG = 0;
            }
            break;
        case ID_cp5:
            if( setFIG != 2 )
            {
                setFIG = 2;
                Rys = false;
                Przyc = false;
            }
            else
            {
                setFIG = 0;
            }
            break;
        case ID_cp6:
            if( Rys == false )
            {
                Rys = true;
                setFIG = 0;
                setCOL = 0;
            }
            else
            {
                Rys = false;
                Przyc = false;
            }
           
           
        case ID_kp1:
            if( setCOL != 1 )
            {
                setCOL = 1;
            }
            else
            {
                setCOL = 0;
            }
            break;
        case ID_kp2:
            if( setCOL != 2 )
            {
                setCOL = 2;
            }
            else
            {
                setCOL = 0;
            }
            break;
        case ID_kp3:
            if( setCOL != 3 )
            {
                setCOL = 3;
            }
            else
            {
                setCOL = 0;
            }
            break;
        case ID_kp4:
            if( setCOL != 4 )
            {
                setCOL = 4;
            }
            else
            {
                setCOL = 0;
            }
            break;
        case ID_rp1:
            setROZ = 0;
            break;
        case ID_rp2:
            if( setROZ != 1 )
            {
                setROZ = 1;
            }
            else
            {
                setROZ = 0;
            }
            break;
        case ID_rp3:
            if( setROZ != 2 )
            {
                setROZ = 2;
            }
            else
            {
                setROZ = 0;
            }
            break;
        case ID_rp4:
            if( setROZ != 3 )
            {
                setROZ = 3;
            }
            else
            {
                setROZ = 0;
            }
            break;
        case ID_bp1:
            {
                fstream bitzap;
                bitzap.open( "C:/programs/SimpleNote/save5.txt", ios::out );
                hdc = GetDC( hwnd );
                i = 0;
                Xpix = 1052;
                Ypix = 70;
                int Xpl = 0;
                while( i < 400000 )
                {
                    pix = GetPixel( hdc, Xpix, Ypix );
                    if( pix == blackpix )
                    {
                        bitzap << "0" << endl;
                    }
                    if( pix == whitepix )
                    {
                        bitzap << "1" << endl;
                    }
                    if( pix == redpix )
                    {
                        bitzap << "2" << endl;
                    }
                    if( pix == greenpix )
                    {
                        bitzap << "3" << endl;
                    }
                    if( pix == bluepix )
                    {
                        bitzap << "4" << endl;
                    }
                    if( Xpix == 1552 )
                    {
                        Ypix++;
                        Xpix = 1052;
                    }
                    i++;
                    Xpix++;
                }
            }
            break;
        case ID_bp2:
            {
                fstream bitwczyt;
                bitwczyt.open( "C:/programs/SimpleNote/save5.txt", ios::in );
                hdc = GetDC( hwnd );
                i = 0;
                Xpix = 1052;
                Ypix = 70;
                int pixcol = 0;
                while( i < 400000 )
                {
                    bitwczyt >> pixcol;
                    if( pixcol == 0 )
                    {
                        SetPixel( hdc, Xpix, Ypix, blackpix );
                    }
                    if( pixcol == 1 )
                    {
                        SetPixel( hdc, Xpix, Ypix, whitepix );
                    }
                    if( pixcol == 2 )
                    {
                        SetPixel( hdc, Xpix, Ypix, redpix );
                    }
                    if( pixcol == 3 )
                    {
                        SetPixel( hdc, Xpix, Ypix, greenpix );
                    }
                    if( pixcol == 4 )
                    {
                        SetPixel( hdc, Xpix, Ypix, bluepix );
                    }
                    if( Xpix == 1552 )
                    {
                        Ypix++;
                        Xpix = 1052;
                    }
                    Xpix++;
                    i++;
                }
            }
            break;
           
        }
        default:
        return DefWindowProc( hwnd, msg, wParam, lParam );
    }
    return 0;
}
dodatkowo konieczny jest następujący image umieszczony w C:/programs/SimpleNote/DATA/
http://tiny.pl/qfs3n
Czy ktoś mógłby mi powiedzieć dla czego otrzymany obraz jest krzywy?
P-101665
Monika90
» 2014-01-09 15:55:14
C/C++
hrp4 = CreateWindowEx( 0, "BUTTON", "bar. duży", WS_CHILD | WS_VISIBLE,
1538, 36, 75, 30, hwnd,( HMENU ) ID_rp4, hInstance, NULL );
Pewnie cię to zdziwi, ale nie każdy ma ekran o szerokości 1600 pikseli.

Czy ktoś mógłby mi powiedzieć dla czego otrzymany obraz jest krzywy?
W obszarze który zapisujesz są też piksele o innych kolorach niż te pięć które przewidziałeś. Pomijasz je przy zapisie.
P-101670
AssSoft
Temat założony przez niniejszego użytkownika
» 2014-01-09 19:50:54
Powinny być dostępne paski przesuwu, które pozwalają poruszać ekranem - Nie sprawdzałem czy działają, ale liczę, że zadziałają. Zaraz to zresztą sprawdzę.

Dziękuję za pomoc, nie pomyślałem o tym.
P-101701
« 1 »
  Strona 1 z 1