|
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으로 가져오는 폰트이름입니다.
:
: 어떻게 해야 가져올 수 있을까요?
:
: 그대로 출력하면 이상한 문자가 출력됩니다.
:
: 뭔가 변경해주어야 할 것이 있다면 방법을 알려주시면 감사하겠습니다.
:
:
|