Мой MsgBox

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

Мой MsgBox

Сообщение Source » 23.10.2007 (Вт) 11:35

Делаю свой MsgBox. У текстбокса включил вертикальный скролл. Вопрос - как определить, имеется ли полоса прокрутки у текстбокса, когда в него занесён текст, т.е. я хочу скрыть текстбокс, затем занести в него текст, определить, появилась ли полоса прокрутки, если нет - выключить VScroll, затем показать текстбокс. Т.е., если текст сообщения короткий и влазит в окно текстбокса, зачем показывать VScroll, который портит вид при малой длине текста.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.10.2007 (Вт) 11:48

Эм... Может, стоит оценить GetTextExtent*?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 23.10.2007 (Вт) 11:48

По моему RichTextBox подойдет лучше. Скролбар сам появится, если много текста.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 23.10.2007 (Вт) 14:28

Source
Дикий конечно вариант, но если вместо текстбокса взять скажем пикчурбокс к примеру, поместить в него лейбл со совйством автосайз = true и wordwrap=true и проверять не вышла ли нижняя граница лейбла за пределы видимой части пикчурбокса (то есть для лейбла установить TOP=0, а height сравнивать с Height'ом пикчурбокса), и если вышла, то делать видимым скроллбар, а при перемещении скроллбара просто двигать лейбл вверх или вниз, такой вариант не подойдет?
Подпись проходит рефакторинг

Cytron
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 266
Зарегистрирован: 15.02.2007 (Чт) 21:09

Сообщение Cytron » 23.10.2007 (Вт) 22:21

Lumen :shock:

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 24.10.2007 (Ср) 19:15

Cytron
Я же предупредил, что вариант дикий. Ты бы трое суток не спавши, че-нить подобное наверное соорудил...
Подпись проходит рефакторинг

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 28.10.2007 (Вс) 13:55

Вот тебе вариант Style MSGBOX. В виде ActiveX Dll.
Когда посмотришь, напиши свои пожелания попробую реализовать. Это Бета версия.
Вложения
TestMSG.zip
(9.89 Кб) Скачиваний: 166
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 28.10.2007 (Вс) 14:53

Saturn.65 писал(а):По моему RichTextBox подойдет лучше. Скролбар сам появится, если много текста.


А что будешь делать с мигающим курсором? :)
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2007 (Вс) 16:25

Он в текстбоксе тоже мигает. А вот форматированный текст - большой плюс.
Изображение

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 28.10.2007 (Вс) 19:10

14
Последний раз редактировалось Al Khamid 30.10.2007 (Вт) 18:53, всего редактировалось 1 раз.
"Время пришло..." ©

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 29.10.2007 (Пн) 8:29

Al Khamid писал(а):Ну если уже дело пошло по активХ-длл, то уместнее использовать стандартный PictureBox, который поддерживает старый добрый оператор Print (а как бонус еще Pset, Line и Circle). Все манипуляции со шрифтом (размер, цвет, сам шрифт, Ж,К,Ч) нам доступны.
Высота и ширина текста легко определяется функциями TextWidth и TextHeight (но только на форме!), так что можно автоматически подгонять размер окна под написанный текст.

Если netdemon так и сделал, то не в обиду, т.к. я не смотрел TestMSG :)


Не совсем так. :) Я поместил контрол Label для заголовка и Сообщения. Для Лейбла сообщения установил Autosize=true, WordWrap=true. Перед отображением формы изменяю её размеры в соответствии с размерами лейбла перемещаю кнопки и т.д. Затем окно выводится на экран. :) Могу подкинуть исходник. Если кому надо. :)
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 29.10.2007 (Пн) 11:19

99
Последний раз редактировалось Al Khamid 30.10.2007 (Вт) 18:49, всего редактировалось 1 раз.

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 29.10.2007 (Пн) 12:00

Al Khamid

Так насчёт возможностей вопрос к автору темы. Ему нужен мессаг бокс для проекта. :)

Вот свежая dll
Вложения
msgv1_2.rar
(8.71 Кб) Скачиваний: 169
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 16.11.2007 (Пт) 22:29

:shock: :shock: :shock:
«Не важно, откуда ты. Важно - где ты.»

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.11.2007 (Пт) 23:18

Пользователю Al Khamid персонально можно отрубить возможность редактировать свои сообщения?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.11.2007 (Сб) 0:35

DKbelRoma
Ты, может быть, пояснишь нам глубокий смысл своего сообщения, состоящего из трёх смайлов shocked?

ANDLL
Нет, но забанить за расисткие выссказывание давно пора.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 17.11.2007 (Сб) 0:55

Лучше удалить совсем, а то сообщения вычищать слишком напряжно: форум порой сильно тормозит.
"Время пришло..." ©

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 17.11.2007 (Сб) 16:20

:lol: Хакер просто я вобще непонимаю о чём идёт речь,а вы так красиво рассказываете ,что я не смог здержаться! :shock: Извени ,больше неповториться!
«Не важно, откуда ты. Важно - где ты.»


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList