티스토리 뷰
아래 내용이 일부 틀려서 정정합니다. 20110719.
아래 처럼 할 경우 폰트가 변경 되는 것이 맞긴 한데,
'일본어'등의 특수 문자들을 불러서 Insert하는 경우에 문제가 생긴다.
일본어를 지원하지 않는 폰트가 set돼있는 트리컨트롤에 일본어 String을 insert하려하면 항목이 깨져버린다.
그 이후에 font를 바꿔봤자 이미 삽입된 항목은 깨진 뒤다.
아래서 적은 NMCustomDraw는 삽입 된 뒤에 그려지는 듯 하다.
따라서 font를 적용시킬려면 그냥 CTreeCtrl로 객체를 생성하자마자 SetFont로 폰트를 지정하면 되는 듯 하다.
만약 CTreeCtrl을 상속받은 CustomTreeControl이라면 PreSubclassWindow 메소드에서 SetFont해주도록 하자.
-----------------------------------------------------------------------------------
CTreeCtrl을 상속받아서 Custom으로 컨트롤을 하나 만든 경우,
폰트 관련 설정은 어디서 해줘야할까?
OnPaint 등등에서 계속 시도해 봤지만 되질 않더라...
다른 컨트롤 들은 잘 되던데....
어디서 해야하는지 고민고민하다가 찾아낸 메소드가
OnNMCustomdraw이다. (왜 Draw가 아니고 draw인진 모르겠지만..)
여튼.. MFC에서 CTreeCtrl을 상속받아서 만든 클래스를 클릭하고 Properties에서 Messages부분을 보면
=NM_CUSTOMDRAW 라고 있다. (VS2005 기준)
해당 메세지를 등록해주자.
그 후 내용은 아래와 같은 식으로 써주면 된다.
void CCustomTreeCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); *pResult = 0; switch( pNMCD->dwDrawStage ) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYITEMDRAW; return; case CDDS_ITEMPREPAINT: CFont* pFont = /*원하는 폰트 관련 설정을 하세요~*/ ::SelectObject( pNMCD->hdc, pFont->GetSafeHandle() ); *pResult = CDRF_NEWFONT; } }
'Development > Windows' 카테고리의 다른 글
[MFC] 그림의 아래에 가로로 스크롤바를 달았을 경우 적당한 ScrollBar의 Size (1) | 2011.08.11 |
---|---|
[MFC] class에서 static 멤버 변수 쓰기 (0) | 2011.07.28 |
[MFC] 유니코드와 멀티바이트로 작성된 프로그램과 DLL 사용 안됨. (0) | 2011.07.28 |
[MFC] 일본어 폰트 지원 문제에 관련해서 (0) | 2011.07.26 |
[MFC] 프로그램 코드 라인수 계산기 (0) | 2011.06.09 |
[MFC] MFC에서 argv 받기 (0) | 2011.06.02 |
[API/MFC] 레지스트리 읽고 쓰는 함수 (1) | 2011.06.02 |
[Visual C++] MultiByteToWideChar와 WidecharToMultiByte의 사용. (0) | 2011.05.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- AWS
- driver
- jni
- MFC
- algorithm
- android
- C
- it
- linux
- java
- 안드로이드
- gcc
- winapi
- db
- database
- 리눅스
- jni강좌
- 프로그래밍
- 음악
- kering
- Visual C++
- Quiz
- NDK
- C++
- source
- Python
- 드라이버
- Cloud
- API
- Troubleshooting
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함