C/C++2009.05.02 19:11

이번에 나온 리본 UI를 지원하는 Feature Pack은 BCGSoft에서 이미 판매 중인 BCG Library를 가져다 쓴것이라고 합니다.
그런데  메뉴 폰트 크기가 1 pixel 작아서 좀 어색해 보이는데요. 이번에 추가된 afxGlobalData 라는 전역 객체가 있습니다.
이것을 이용해서 메뉴 폰트를 수정 할 수 있습니다.

아래 코드는 시스템의 파라메터에서 시스템의 폰트크기를 가져와서 메뉴 폰트 크기를 수정하는 코드를 추가한 내용 입니다.

(MainFrm.cpp)

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)
  return -1;

// 이 부분 추가
 LOGFONT logfont = {0};
 ::SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &logfont, 0);
 afxGlobalData.SetMenuFont(&logfont, TRUE);


참고로 아래는 데브피아에 올라와 있던 코드 입니다.
폰트의 정보를 시스템파라메터에서 가져오지 않고 직접 설정 하는 예제 입니다.

(MainFrm.h)
...
LOGFONT m_lf;
...

(MainFrm.cpp)

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
  if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
    return -1;
 
  //이부분을 추가 (사용할때는 함수를 만들어 처리할것)
 memset(&m_lf, 0, sizeof(LOGFONT));
 m_lf.lfCharSet = 0x81; // 한글 Character Set
 m_lf.lfHeight = 12; // 12 point 크기
 wcscpy_s(m_lf.lfFaceName, _T("굴림"));
 afxGlobalData.SetMenuFont(&m_lf, TRUE);
...

신고
Posted by 배고파씨

티스토리 툴바