Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение размера кнопки [D7, WinXP]


Страницы:   1 2

Kinder ©   (2003-11-04 14:51:00) 

Есть кнопка в программе. Как через WinAPI поулчить и изменить её размеры так, чтобы ширина кнопки была равна помещенному на нее тексту. Т.е. чтобы текст не залазил за границу кнопки.


Nick Denry   (2003-11-04 15:49:00) [21]

кажется можно через SendMessage WM_GETFONT


Kinder   (2003-11-04 15:46:00) [22]

AFont : HFONT

А что это за переменная и как её получить? Я так понимаю это хэнд шрифта для данного окна. Как его получить можно?


Kinder   (2003-11-04 15:37:00) [23]

Попробую. Спасибо всем :)


Rouse_   (2003-11-04 15:16:00) [24]

См. GetTextMetrics

Желаю успехов


Игорь Шевченко   (2003-11-04 15:12:00) [25]

function GetTextWidth (const Str : String; AFont : HFONT) : Integer;
var
DC : HDC;
OldFont : HFONT;
TextSize : SIZE;
begin
DC := GetDC (HWND_DESKTOP);
try
OldFont := SelectObject(DC, AFont);
try
if not GetTextExtentPoint32(DC, PChar(Str), StrLen(PChar(AStr)), TextSize) then
RaiseLastWin32Error;
Result := TextSize.cx;
finally
SelectObject(DC, OldFont);
end;
finally
ReleaseDC (HWND_DESKTOP, DC);
end;
end;


Kinder   (2003-11-04 15:08:00) [26]

Понятно :) Но как определить ширину текста в пикселях? Вот что главное. Т,е. как определить саму ширину текта. Ведь это зависит от шрифта, его размера, жирности.


Nick Denry   (2003-11-04 14:54:00) [27]

Написать свой алгоритм....

Примерные функции
int GetWindowText(

HWND hWnd, // handle of window or control with text
LPTSTR lpString, // address of buffer for text
int nMaxCount // maximum number of characters to copy
);
и, наверно
BOOL SetWindowPos(

HWND hWnd, // handle of window
HWND hWndInsertAfter, // placement-order handle
int X, // horizontal position
int Y, // vertical position
int cx, // width
int cy, // height
UINT uFlags // window-positioning flags
);


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо