RichTextBox - запретить редактирование вставленного рисунка.

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

RichTextBox - запретить редактирование вставленного рисунка.

Сообщение Grover » 11.04.2007 (Ср) 21:08

Вставляю в RichTextBox рисунок :
Код: Выделить всё
RichTextBox1.OLEObjects.Add , , App.Path & "\up.bmp"


Рисунок вставляется нормально.
Теперь при двойном нажатии на рисунок он "открывается" для редактирования, а это мне не надо. Надо, чтобы рисунок просто было видно и всё !

Вопрос:
Как запретить редактирование вставленного рисунка?

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 16.04.2007 (Пн) 7:15

Ни кто не знает...
Может мои размышления кого-нибудь натолкнут на мысль.

1. Это OLE объект класса Paint.Picture. В стандартном контроле OLE есть свойство AutoActivate. Если его выключить, то редактирование рисунка запрещено.
В OLE объекте RichTextbox такого свойства нет. Может можно использовать SendMessage Lib "user32".

2. Существует класс PBrush, который не поддерживает редактирование в принципе. Но как его объявить при вставке в RichTextbox я не знаю. Пробывал так:

RichTextbox1.OLEObjects.Add , ,"smile.bmp","PBrash"

Такая запись не работает, объект всё равно вставляется как класс Paint.Picture.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.04.2007 (Пн) 13:08

Grover, ты знаешь, пользоваться поиском полезно. И чтобы не получать замечания, и чтобы (о чудо!) находить ответы.
http://bbs.vbstreets.ru/viewtopic.php?p=6620549#6620549
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 16.04.2007 (Пн) 20:03

Очередной способ вставки изображения...
Я их уже 3 знаю: 1. Через буфер, 2. Через OLE, 3. Твой.

Проблема не в том как вставить, а в том как запретить редактирование вставленного изображения !
(Двойной клик на картинку и она открывается для редактирования.)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.04.2007 (Пн) 20:05

Двойной клик на картинку из примера - и она НЕ открывается для редактирования.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 17.04.2007 (Вт) 7:07

А вот это уже интересно...
У меня открывается...

Visual Basic 6.0
Windows XP SP1

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.04.2007 (Вт) 10:59

Visual Basic 6.0 SP6
Windows XP SP2
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение Хакер » 17.04.2007 (Вт) 11:01

И у меня не открывалась. Ни тогда, когда я делал пример (была ещё SP1), ни теперь (SP2)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 17.04.2007 (Вт) 12:24

А кактм классом у вас вставляется рисунок?

Судя по .TextRTF у меня всегда Paint.Picture.

Если не сложно, посмотрите.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.04.2007 (Вт) 12:52

\objclass Paint.Picture

Не открывается.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 17.04.2007 (Вт) 14:12

Странно...
Я даже не изменял код... Просто запускаю примерчик и всё...

Может мы о разных примерах говорим? Дайте прямую ссылку, плиз...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.04.2007 (Вт) 14:24

Ссылка прямая. На пост, а не на топик.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение Хакер » 17.04.2007 (Вт) 15:39

Grover

Мы об этом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 17.04.2007 (Вт) 15:43

Всё правильно...
Странно? надо попробывать на других компах.

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

Сообщение Хакер » 17.04.2007 (Вт) 15:55

У меня рядом комп с SP1. И без VS вообще. Сейчас на нём и опробую.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.04.2007 (Вт) 16:10

Хм.
А если скомпилировать, начинает открываться.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение Хакер » 17.04.2007 (Вт) 16:52

Grover
1) Если рич предназначен только для отображения данных, то можно его сабклассить, и не пускать нужные для перевод в режим редактирования картинок даблклики.

2) Я помню, что есть свойство SelLocked или SelProtected. Попробую его поюзать.

3) Был дан универсальный способ. Я на 90% уверен, что убрать редактируемость картинок можно правкой rtf-разметки.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение Хакер » 17.04.2007 (Вт) 16:59

+ 3) Да, это делает контроворд \protect
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 18.04.2007 (Ср) 8:15

Проверил пример дома, редактор не запускается, все работает как надо.

Спасибо за /protect.


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

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

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

    TopList  
cron