|
제가 OS를 명시 안했군요..
한글 WINDOWS XP에서는 "굴림"이라고 잘 표시 됩니다.
문제되는 OS는 WINDOWS Me이고, 찾아보니 유니코드로 리턴된다라는 걸 알았습니다.
문제는 WideCharTo...등의 변환 함수를 사용해도 변환이 안된다는 겁니다.
잘 못 사용한건지..
어쨌든 얻어온 정보를 바탕으로 Font의헨들을 넘겨받으면,
이름만 빼고는 모두 시스템폰트와 같은 폰트를 사용할 수 있습니다.
유영인 [Chris] 님이 쓰신 글 :
: SystemParametersInfo의 인자값이 잘못되어 값을 제대로 못 받아오는 것 같습니다.
:
: SPI_GETNONCLIENTMETRICS 의 인자는, pnParam 부분 (3번째 인자) 에서만 저장시킬 곳의 포인터 지정만 해주시면 됩니다.
:
:
:
: //---------------------------------------------------------------------------
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:
: NONCLIENTMETRICS ncFont;
:
:
: ncFont.cbSize = sizeof(NONCLIENTMETRICS);
: SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncFont, 0);
:
:
: ShowMessage(ncFont.lfMessageFont.lfFaceName);
:
: }
: //---------------------------------------------------------------------------
:
:
: 이기주 님이 쓰신 글 :
: : SystemParametersInfo를 사용하여 시스템 폰트의 이름을 가져오려고 합니다.
: :
: : NONCLIENTMETRICS ncm;
: :
: : ncm.cbSize=sizeof(NONCLIENTMETRICS);
: : int st=SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS),NONCLIENTMETRICS*)&ncm,0);
: :
: : 문제는 ncm.lfMessageFont.lfFaceName으로 가져오는 폰트이름입니다.
: :
: : 어떻게 해야 가져올 수 있을까요?
: :
: : 그대로 출력하면 이상한 문자가 출력됩니다.
: :
: : 뭔가 변경해주어야 할 것이 있다면 방법을 알려주시면 감사하겠습니다.
: :
: :
|