... 멋지게 실패했습니다.

아니 사실 실패라기보단..거의 포기에 가깝네요. 여러가지 한계가 너무 많이보여서요.
해결 방법도 찾았고 나름 간단한 방법으로 해결이 가능하다는 사실도 알고있지만.. 의욕이 너무 떨어지네요.

뭐 일단 만들어 볼 생각이긴 합니다.
그러나 폰트를 설치 안하고 직접 읽어들여서 사용하는건 좀 귀찮은 일이 되버려서(...) 아마 폰트를 직접 읽어들이는 방식은 아닐것 같습니다.

일단 폰트를 직접 로드하는 방식에 약간의 문제가 발생했습니다.
마지막 글자가 ' '<- 공백 문자라면 이것은 길이로 치지 않는다는 것. 그래서 커서를 옮길 때 마지막 문자가 공백일 경우 커서가 안옮겨집니다...
제가 원하는건 그런게 아니므로... 일단 이 방법은 잠시 포기해야 할 것 같습니다.

그렇다고 폰트를 읽어들여서 하는 방법이 없냐 라고 묻는다면 있습니다.
Microsoft Windows SDK 7 Sample 소스코드에 이 해결책이 있습니다. 바로 커스텀 폰트 컬렉션 인터페이스를 상속받아 이 인터페이스를 직접 구현해야하는데
구현해야할 인터페이스가 3개가 있습니다.

안타깝게도 제가 IUnknown에 대해 몰라서(쩝...) 소스코들를 봐도 이게 대체 뭐하는건지 알 수가 없네요.

두 번째 문제는 커서의 위치가 일정하지 않다는 것 입니다.
영문의 폰트에 보면 Metrics에 descent 와 ascent라는게 있는데 이 문제 때문에 Drawing 영역의 Top Bottom 위치가 일정하게 잡히지 않습니다.
그래서 글자를 입력할 때 마다 커서의 위치가 바뀌는 문제가 발생합니다 ㅜ_ㅜ...(f와 j... 이 두개의 글자가 제일 말썽이더군요..)


사진을 모시면 아시겠지만 마지막 j를 타이핑 한 후 커서가 진짜 조금 내려간 모습이 보입니다.

일단 이 방법도 사용은 가능하지만, 마지막 띄어쓰기가 보여지지 않는다는게 너무 찝찝해서(...)
일단 이 방법 말고 이미 설치된 폰트를 이용해서 출력하는 방법을 이용해 보려구요.
MS Sample 프로젝트 라이선스도 한번 확인해 본 다음에 그대로 써도 된다면 그 방식도 한번 써 보려고 합니다.

조금 시간이 더 걸리겠군요 ㅇㅅㅇ.; 일단 애니나 라노베좀 보면서 멘탈좀 정화하다가 다시 시도하겠습니다.

혹시 참고할 만한 자료가 있다면 알려주시면 감사하겠습니다.

참고 사이트

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=687984&ref=687984
http://support.microsoft.com/kb/74299
http://msdn.microsoft.com/en-us/library/windows/desktop/ms533820%28v=vs.85%29.aspx
http://msdn.microsoft.com/ko-kr/library/y505zzfw%28v=vs.110%29.aspx
http://msdn.microsoft.com/ko-kr/library/xwf9s90b%28v=vs.110%29.aspx
http://cx5software.sakura.ne.jp/blog/2011/01/18/directwrite-metrics/
http://msdn.microsoft.com/en-us/library/windows/desktop/dd941785%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/dd941710%28v=vs.85%29.aspx
http://msdn.microsoft.com/ko-kr/library/windows/desktop/dd756583%28v=vs.85%29.aspx
http://www.gamedev.net/topic/309327-direct3dfont-using-local-folder-ttf/

기타 등등.

+ Recent posts