|
소스 잘 보고 좀더 고민해 보십시요
무엇이 잘 못되었는지..
그리고 질문에 대해서 한 말씀 드리면..
1. 질문하기 전에 .. 먼저 최대한 스스로 답을 찾아보세요
(개인적으로 1주일이상 스스로 해결하지 못하는 경우에나 질문올립니다.)
2. 검색을 이용하세요
이곳 커뮤니티엔 웬만한 문제에 대한 답은 다 있습니다.
초보자의 경우 답을 봐도 답인지 모르는 경우가 많죠
저도 그랬었구.. 아직도 자주 그러기도 합니다만..
개인적으로 질문을 통해 누가 가르쳐줘서 문제를 해결한 경우는 거의 없습니다.
초보 시절에두요..
검색하고 찾아보면 없는게 없다는 얘기입니다.
3. 무엇보다 질문에 누가 답해줘서 얻은 지식은 오래가지 못합니다.
노력하고 고민한만큼 자신의 머리에 선명하게 지식이 세겨지죠
공부중 님이 쓰신 글 :
: 예전 답글에서요
: 폰트의 크기를 알아 오는 방법 에 아래와같이 쓰셨는데요
:
: 방법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는 문자열을 넣어 보았습니다
|