|
예전 답글에서요
폰트의 크기를 알아 오는 방법 에 아래와같이 쓰셨는데요
방법1)
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: // INT size;
: tagSIZE size;
: char *ch="abcd";
: GetTextExtentPoint32(GetDC(Edit1->Handle),ch ,4,&size);
: ShowMessage(IntToStr(size.cx)+" "+IntToStr(size.cy));
: }
: //---------------------------------------------------------------------------
:
:
:
: 방법2)
: 그런데 위 방법은 값이 좀 맞지 않는것 같더군요
: 그래서 아래와같이 Canvas를 만들어서...
: VCL의 TextExtent , TextWidth, TextHeight 를 이용해봤습니다.
:
: void __fastcall TForm1::BitBtn1Click(TObject *Sender)
: {
: tagSIZE size;
: TCanvas *Can=new TCanvas;
: Can->Handle=GetDC(Edit1->Handle);
: size=Can->TextExtent("abcd");
:
: Can->Font->Size=Edit1->Font->Size; //Canvas의 Font를 설정해준다.
: int hei=Can->TextHeight("abcd");
: int wid=Can->TextWidth("abcd");
:
: ShowMessage(IntToStr(size.cx)+" "+IntToStr(size.cy));
: delete Can;
: }
2번째 방법을 사용 하여 보았으나 대문자로 바꾸면 길이는 달라집니다
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
: {
: tagSIZE size;
: TCanvas *Can=new TCanvas;
: Can->Handle=GetDC(Edit1->Handle);
: size=Can->TextExtent(Edit2->Text);
:
: Can->Font->Size=Edit1->Font->Size; //Canvas의 Font를 설정해준다.
: int wid=Can->TextWidth(Edit2->Text);
:
: ShowMessage((size.cx))
: delete Can;
}
에디트 1은 폰트의 크기를
에디트2는 문자열을 넣어 보았습니다
|