티스토리 뷰

반응형

API로 프로그램을 만들다보면 글자 찍을 일이 많습니다.
그런데 내 컴퓨터에 설치되어있는 폰트가 다른사용자의 컴퓨터에는 설치가 되어 있지 않아서 만들때는 멋잇엇는데,
실제로 다른 컴퓨터에서 실행해보면 누추한 경우가 있습니다.

이럴때 GDI와 GDI+ 에서의 폰트파일을 경로를 지정하여 로드하는 함수가 있습니다.

GDI
AddFontResource("파일명");
RemoveFontResource("파일명");

AddFontResource("파일명"); 가 호출되면 호출된 시점부터 RemoveFontResource("파일명");가 호출되거나, 컴퓨터가 제부팅 되기 전까지는 해당 파일명을 가지는 폰트를 사용할 수 있습니다.

GDI+
이것때문에 고생을 했는데, GDI+에서 폰트를 만들고 글자를 찍으면 AddFontResource("파일명"); 를 호출해도 글자가 찍히지를 않습니다.
GDI+는 다른 클래스를 이용하여야 하는데 이것이 PrivateFontCollection 클래스 입니다.
메소드로는 GetFamilies, AddFont 등이 있는데요.
PrivateFontCollection .AddFont("파일명"); 을 한후에
GetFamilies 메소드를 사용하여 폰트를 로드하고 사용하시면 글자가 잘 찍힙니다.

중요한점은 Add한 폰트는 PrivateFontCollection 클래스에 종속적이기 때문에 PrivateFontCollection 클래스가 메모리에서 해제되거나 하게되면 사용할 수 없게됩니다.

반응형

'Programing > API' 카테고리의 다른 글

keybd_event 함수를 이용하여 한글문자열을 타이핑하는 방법.  (4) 2011.08.20
오목  (1) 2011.04.23
아이온 종족간 번역기  (0) 2009.08.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
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
글 보관함