Динамическое изменение размера Label-a

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vitaliy
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 14.05.2003 (Ср) 13:35

Динамическое изменение размера Label-a

Сообщение Vitaliy » 30.05.2003 (Пт) 13:18

Может кто знает, как изменять ширину лейбла (да и по ходу текстбокса) в зависимости от введенного в них текста? Может есть где-то соответствующие компоненты с такими свойствами? Я где-то что-то похожее видел, но вот не могу найти....

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

Сообщение Александр Андреев » 30.05.2003 (Пт) 13:50

Для лэйбла надо поставить AutoSize = true.
Для текстбокса - вычислять размер надписи в пикселах и программно изменять ширину.

Vitaliy
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 14.05.2003 (Ср) 13:35

Сообщение Vitaliy » 30.05.2003 (Пт) 14:20

С лейблом я, конечно, прокололся.... Как раз то что надо!
А вот как вычислить размер текста в пикселях? Плиз... :oops:

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

Сообщение Александр Андреев » 30.05.2003 (Пт) 15:32

The GetTextExtentPoint32 function computes the width and height of the specified string of text.

BOOL GetTextExtentPoint32(
HDC hdc, // handle to device context
LPCTSTR lpString, // pointer to text string
int cbString, // number of characters in string
LPSIZE lpSize // pointer to structure for string size
);


Объяви ее вот так:

Код: Выделить всё
Public Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As SIZE) As Long

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 31.05.2003 (Сб) 9:59

НУ))))))))))))))))))))) Ты это загнул! У PictureBox есть два прекрасных метода!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 31.05.2003 (Сб) 15:17

к стати по поводу лэйбла. есть у него еще одно свойство связанное с автоизменением размеров: WordWrap называется. если установить его и AutoSize в True, то надпись будет изменять свои размеры не вширь, а по высоте.
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 03.06.2003 (Вт) 19:40

Размести на форме текстбокс Text1

Код: Выделить всё
Private Sub Text1_Change()
    Set Me.Font = Text1.Font
    Text1.Width = TextWidth(Text1)
    Text1.Height = TextHeight(Text1)
End Sub


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 115

    TopList