![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Rect текста [D6, WinXP]
Compiler © (2008-01-07 23:11:00)
function GetRectText(DC:hDC; Text:string):Trect;
begin
Result.Left:=0;
Result.Top:=0;
Windows.DrawText(DC, PChar( Text ),-1,
Result, DT_CALCRECT or DT_NOCLIP or DT_WORDBREAK);
end;
var
MainWnd,l:HWND; R:Trect; Text:string;
begin
...
Text:='бла-бла-бла';
l:=CreateWindowEx(0,'STATIC',Pchar(Text),SS_LEFT or WS_VISIBLE or WS_CHILD,
100,100,100,100,MainWnd,1010,hinstance,nil);
SendMessage(L,WM_SETFONT,GetStockObject(ANSI_VAR_FONT),0);
R:=GetRectText(GetDC(MainWnd),Text);
SetWindowPos(l,0,0,0,r.Right,r.Bottom,SWP_NOMOVE);
...
Определяет неверно.
В VCL приR:=GetRectText(Form1.canvas.handle,Text);все работает. Как заставить учитывать ширину и высоту шрифта
Dib@zol (2008-01-08 18:45:00) [1]А чего ты собсна ждёшь от SetWindowPos, если у тебя в последнем параметре указано, что окно двигать не надо??? Замени на SWP_SHOWWINDOW и будет те щастье.
Compiler (2008-01-08 17:29:00) [2]
> http://podgoretsky.com/
Там в качестве DC везде Form1.canvas.handle. Или я плохо ищу? А без объекта TCanvas можно обойтись?
Leonid Troyanovsky (2008-01-08 11:48:00) [3]
> Compiler (07.01.08 23:11)
http://podgoretsky.com/DM/delphimaster.html
--
Regards, LVT.