Skocz do zawartości

GDI : zmiana parametrow fontu i piora , bmp


Randal

Recommended Posts

Jest jakis sposob aby zamiast tworzenia wielu roznych fontow edytowac tylko parametry juz utworzonego fontu czy piora ?
Czesto mam fonty i piora w zmiennych static, poza tym przeciez to marnotrawstwo bezcennej pamieci.

PS. Czy jest moze funkcja systemowa win32 ktora robi zrzut grafiki (screenshot-regionshoot) z np GDI-regionu do pliku *.bmp ? (lub zbior funkcji pomocnych wykonania do takiej operacji)

Link do komentarza
Udostępnij na innych stronach

Co do pytania 1: to jesli dobrze alokujesz i zwalniasz pamiec to nie ma tu mowi o zadnym marnowaniu.

Pamiec jest po to zeby jej uzywac w racionalny sposob. Katowanie siebie jako programisty skonczylo sie z chwila pojawienia sie wiekszych ilosci RAM,itp

2. poszukaj czegos na temat GetDIBits, nie bede podawal rozwiazania bo latwo je samemu zaimplementowac.

Sprawa jest prosta, jesli masz jakis kontekst pobierasz jego "pixelki" potem robisz sobie z mini co dusza zapragnie, mozesz je wyrysowac na powrot zaden problem.

Link do komentarza
Udostępnij na innych stronach

Bezposredniej funkcji do zrzutu okna o nieregularnych ksztaltach to raczej nie ma. Natomiast aby zrzucic caly, badz czesc ekranu wystarcza Ci funkcje (delphi):

var
 width, height,x,y: integer;
 dc:hDC;
 bm:hBitmap;
begin
 width := 50; height := 100; //wysokosc i szerokosc zrzutu kawalka ekranu
 x=5; y=20; //skad
 dc:=CreateComaptibleDC(GetDC(0));
 bm:=CreateCompatibleBitmap(GetDC(0),width,height);
 BitBlt(dc,0,0,width,height,GetDC(0),x,y,SRCCOPY);

 //tutaj mozesz obsluzyc uchwyt bm (bitmapy z rzutem ekranu), np. zapisac do pliku

 DeleteDC(dc);
 DeleteObject(bm);
end;
Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...