Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Высота шрифта в пикселах 
Author Message
SCHMaster



PostPosted: Thu Mar 17, 2005 03:33    Post subject: Reply with quote

Parcan
Гм... Ну если ты пишешь на API, то можно, в принципе и так - один хрен ты их создаешь (окна) в runtime (c VCL делфя эту всю работу за тебя делают). Можно и по другому (хоть на APIах, хоть на Делфях) - создать поверхность (можно окно, можно поверхность - DC, если юзаешь юнит Graphics, то можно и TCanvas обломаться, присвоив MyCanvas.Font.Handle:=HFONT), и выполнять все те-же функции с ней. В качестве примера (это, без обработки всяких искл. ситуевин, "с лету", но пахать должно)

Code:
function GetObjectSize(Fnt:HFont; aCaption:String; var aSize:TSize):boolean;
var
 aCanvas:TCanvas;
begin
 aCanvas:=TCanvas.Create;
try
 aCanvas.Font.Handle:=Fnt;
 aSize.X:=0;
 aSize.Y:=0;
 result:=GetTextExtentPoint32(GetDC(MyHandle),PChar,MyCaption),Length(MyCaption), aSize);

finally
 aCanvas.Free;
end;

end;

Если на АРЯХ, то вместо aCanvas - CreateCompatableDC но, я так думаю, ты с VCL вошкаешься, так что можно не гиммороиться с API
View user's profile Send private message Visit poster's website


Powered by phpBB © 2001, 2005 phpBB Group