Pokaż wyniki 1 do 2 z 2

Temat: winapi - wyświetlanie bitmapy

  1. #1
    Zarejestrowany
    Jan 2007
    Skąd
    somewhere in time
    Postów
    510

    Domyślnie winapi - wyświetlanie bitmapy

    CZESC!
    No to przerabiam sobie kursiki WINAPI i wszystko idzie dobrze ale nie chce mi pokazywać się bitmapa "OBRAZEK"
    Kompilacja przebiega bezbłędnie ale obrazka nie widać
    Jeśli ktoś zajrzy do kodu i znajdzie przyczynę to będe wdzięczny

    Kod:
    #include<windows.h>
    
    
    
    int WINAPI WinMain(
        HINSTANCE program,
        HINSTANCE oj,
        LPSTR lpsCmdLine,
        int nMode)
        
        {
            HWND okno;
            MSG wiadomosc;
            WNDCLASS klasa;
            
            klasa.hInstance=program;
            klasa.lpszClassName="klasa";
            klasa.lpfnWndProc=DefWindowProc;
            klasa.lpszMenuName=NULL;
            klasa.style=0;
            klasa.hIcon=LoadIcon(program,"IKONA");
            klasa.hCursor=LoadCursor(program,"KURSOR");
            klasa.hbrBackground=(HBRUSH) GetStockObject(BLACK_BRUSH);
            klasa.cbClsExtra=0;
            klasa.cbWndExtra=0;
            
            if(!RegisterClass(&klasa)) return 0;
            
            okno=CreateWindow(
            "klasa","blebleble",WS_OVERLAPPEDWINDOW,500,500,500,500,NULL,NULL,program,NULL);
            ShowWindow(okno,SW_SHOW);
                 HBITMAP bitmapa=LoadBitmap(program,"OBRAZEK");
                  HDC kontekst=GetDC(okno);
            RECT prost={30,100,200,300};
             FillRect(kontekst,&prost,CreateSolidBrush(0x44FFDD));
            HDC pomoc=CreateCompatibleDC(kontekst);
             SelectObject(pomoc,bitmapa);
             BitBlt(kontekst,30,50,100,100,pomoc,0,0,SRCCOPY);
                TextOut(kontekst,10,10,"sdffsdsdff",14);
              DeleteDC(pomoc);
              ReleaseDC(okno,kontekst);
            DeleteObject(bitmapa);
            
         
    
    
          
         
            
           
            
            while(GetMessage(&wiadomosc,NULL,0,0))
            {
                                                  DispatchMessage(&wiadomosc);
                                                  TranslateMessage(&wiadomosc);
            }
        }

    PLIKI zasobów wygląda tak


    KURSOR CURSOR "sa.cur"
    IKONA ICON "b.ico"
    OBRAZEK BITMAP "a.bmp"

    Pozdrawiam

  2. #2
    Zarejestrowany
    Aug 2007
    Postów
    10

    Domyślnie

    Kod:
    int rysujbmp(char bmp[],int x2,int y2,int sze,int wys){
    HBITMAP hbmObraz;
    hbmObraz = (HBITMAP)LoadImage(NULL, bmp, IMAGE_BITMAP, 0,0,LR_LOADFROMFILE);
    hdcOkno = GetDC(hwnd);
    HDC hdcNowy = CreateCompatibleDC(hdcOkno);
    SelectObject(hdcNowy, hbmObraz);
    BITMAP bmInfo;
    GetObject(hbmObraz, sizeof(bmInfo), &bmInfo);
    BitBlt(hdcOkno, x2, y2, sze, wys, hdcNowy, 0, 0, SRCCOPY); 
    DeleteObject(hbmObraz); 
    DeleteDC(hdcNowy); 
    DeleteDC(hdcOkno);
    }
    Prosta funkcja ;-)
    A wywołujesz:
    Kod:
     rysujbmp("nazwa.BMP",0,0,800,600);
    Tłumacze:
    1-N/C
    2-Poz X górnego lewego rogu
    3-Poz Y górnego lewego rogu
    4-Szerokosc
    5-Wysokosc
    Zasoby ci nie potrzebne ;-)
    Możesz sobie ladować z zasobów ale moim zdaniem to non sens ;P

Podobne wątki

  1. WINAPI dev c++ problem
    By naichniach in forum C/C++
    Odpowiedzi: 0
    Autor: 11-12-2007, 20:23
  2. Winapi - Okienka
    By Tinek in forum C/C++
    Odpowiedzi: 1
    Autor: 09-16-2007, 21:18
  3. POP + WinAPI
    By 31337 in forum Newbie - dla początkujących!
    Odpowiedzi: 0
    Autor: 05-03-2007, 13:43
  4. zamiana int na char w winapi
    By 31337 in forum C/C++
    Odpowiedzi: 0
    Autor: 04-30-2007, 23:54
  5. [winapi]dostęp do pamięci
    By 31337 in forum C/C++
    Odpowiedzi: 0
    Autor: 04-24-2007, 19:18

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52