23.10.2014 Views

WinApi-grafika 2D

WinApi-grafika 2D

WinApi-grafika 2D

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5. Grafika 20/20<br />

Czcionki.<br />

Mona pobra predefiniowane czcionki systemowe:<br />

HFONT hFont = GetStockObject(iFont);<br />

iFont równa si SYSTEM_FONT (domylna czcionka – o proporcjonalnej szerokoci liter)<br />

lub SYSTEM_FIXED_FONT(o takiej samej szerokoci znaków)<br />

SelectObject(hFont);<br />

Czcionki GDI znajdujce si w plikach na dysku twardym dziel si na trzy kategorie:<br />

Rastrowe – kady znak jest zakodowany w postaci wzorca pikseli; „nieskalowalnymi” bez<br />

pogorszenia jakoci; wydajno; dobra czytelno.<br />

Wektorowe – znak w postaci zbioru połczonych odcinków. – niska wydajno wywietlania,<br />

czytelno słaba przy małych wymiarach; przy duych brzydkie; Skalowalne.<br />

TrueType – zdefiniowane przez kontur składajcy si z odcinków i łuków. Kontur jest<br />

wykorzystywany do stworzenia mapy bitowej znaku.<br />

Windows 95 był wyposaony w 13 czcionek TrueType w kolejnych wersjach Windows lista<br />

czcionek uległa powikszeniu.<br />

(Courier New , Courier New Bold, Courier New Italic, Courier<br />

New Bold Italic, Times New Roman, Times New Roman Bold, Times New Roman<br />

Italic, Times New Roman Bold Italic, Arial, Arial Bold, Arial Italic, Arial Bold Italic,<br />

Symbol).<br />

HFONT CrateFontIndirecta(LPLOGFONT lplf)<br />

typedef struct tagLOGFONT {<br />

LONG lfHight // podana wysoko czcionki w jednostkach logicznych. Jeeli =0<br />

system uywa domylnej wielkoci<br />

LONG lfWidth // szeroko<br />

LONG lfEscapement<br />

LONG lfOrientation<br />

LONG lfWeight // grubo czcionki (np. FW_DONTCARE=0, FW_NORMAL=400,<br />

FW_BOLD=700,..)<br />

BYTE lfItalic // kursywa jeeli !=0<br />

BYTE lfUnderline<br />

BYTE lfStrikeOut<br />

BYTE lfCharSet<br />

BYTE lfOutPrecision<br />

BYTE lfClipPrecision<br />

BYTE lfQuality<br />

BYTE lfPitchAndFamily<br />

TCHAR lfFaceName<br />

} LOGFONT, *PLOGFONT<br />

Aby wybra czcionk TrueType wikszo wartoci powinna by równa 0.<br />

BOOL GetTextExtentPoint32(HDC hdc, LPCTSTR lpString, int<br />

iCount, LPSIZE lpSize) – funkcja podaje szeroko i wysoko łacucha znaków na<br />

podstawie biecej czcionki w DC.<br />

Struktura SIZE składa si z dwóch pól typu LONG cx, cy.<br />

Copyright © 2001-2003 Ewa Lach

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!