Синхронизация RTB с PictureBox

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

Синхронизация RTB с PictureBox

Сообщение Don Leno » 12.01.2017 (Чт) 18:47

Есть РичТекстБокс на котором рисуется фоновое изображение и текст (фон будет анимироваться или меняться!!). Суть в том, что из-за мерцания и лагов в Риче решил поместить отображение самого текстового поля в PictureBox, но столкнулся с тем, что не знаю как передавать нажатия клавиатуры и мыши, которые были сделаны на PictureBox, в РичТекстБокс?! Пробовал через Mouse,Key Down/Up ничего не получается. Подскажите, желательно с небольшим примером как можно подобное сделать.
Также, чтобы не создавать лишних тем, если у кого есть альтернативные варианты по реализации подобного текстового поля с изменяемым фоном, прошу пишите)))
Вот мой исходник:
Вложения
modRTB_test.rar
(107.28 Кб) Скачиваний: 209

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Синхронизация RTB с PictureBox

Сообщение alibek » 13.01.2017 (Пт) 19:08

Если текст не редактируемый, то RTB вообще не нужен.
Нужно использовать компонент web-браузера или свою функцию отрисовки.
Lasciate ogni speranza, voi ch'entrate.

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Синхронизация RTB с PictureBox

Сообщение Don Leno » 13.01.2017 (Пт) 21:40

alibek, текст как раз то и будет редактируемым. Суть в том, чтобы сделать текст. поле с анимированым фоном

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Синхронизация RTB с PictureBox

Сообщение bon818 » 15.01.2017 (Вс) 0:35

Держи!
Код: Выделить всё
Const GWL_EXSTYLE = (-20)
Const WS_EX_TRANSPARENT = &H20&
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public rtf As String, txt As String

Private Sub Form_Load()

    'Текст
    txt = "Сериал «Слепое пятно» рассказывает историю о девушке, которая потеряла память. "
    rtbTx.Text = txt & txt & txt & txt & txt
   
    'Контекст фона
    Picture1.Picture = LoadPicture(App.Path + "\wp2.bmp")
    Call SetWindowLong(rtbTx.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT) ' TRANSPARENT фона
   
End Sub


Если перепробовал все, но так и не заработало, читай инструкцию (MSDN).

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Синхронизация RTB с PictureBox

Сообщение Don Leno » 15.01.2017 (Вс) 18:27

bon818, не плохая идея, только вот попробуй теперь сам создай проект и что нить там в текстовом поле напечатай))))

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Синхронизация RTB с PictureBox

Сообщение bon818 » 15.01.2017 (Вс) 19:31

Создал, напечатал, в чем проблема?

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Синхронизация RTB с PictureBox

Сообщение Teranas » 16.01.2017 (Пн) 2:02

Я не спорю анимированный фон, ещё 3D вращающиеся буковки, а смысл…
Если такой редактор, то только для себя, а если для развлечения, то «Rich» не лучший выбор…
С уважением, Андрей.

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Синхронизация RTB с PictureBox

Сообщение Don Leno » 20.01.2017 (Пт) 17:43

bon818, проблема в том что у меня в текстовом поле, при наборе текста, все буквы накладываются друг на друга?! Может я что то сделал не так?

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Синхронизация RTB с PictureBox

Сообщение bon818 » 21.01.2017 (Сб) 1:51

Don Leno писал(а):bon818, проблема в том что у меня в текстовом поле, при наборе текста, все буквы накладываются друг на друга?! Может я что то сделал не так?

Я использовал форму из твоего примера, так что все должно работать как надо, проверил в xp-w7.
Picture1 с фоном, используй как контейнер для rtbTx, ты же так делаешь?
или так Form1.Picture = LoadPicture(App.Path + "\wp2.bmp")
или используй ф-ю InvaliDateRect.
И еще, в хр нужно обновлять окна скролов(если ни есть) при перерисовке, в w7 все четко и гладко.

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Синхронизация RTB с PictureBox

Сообщение Don Leno » 21.01.2017 (Сб) 5:24

используй как контейнер для rtbTx, ты же так делаешь? - нет просто ставлю поле над рисунком.
в хр нужно обновлять окна скролов(если ни есть) при перерисовке - у меня как раз Xp, вот только как сделать перерисовку поля?
Я использовал форму из твоего примера - моя форма ничем не отличается от стандартной, поэтому я копипастнул твой код и решил посмотреть что у тебя получилось а в итоге см. скрин.
(черное - это остается после выделения текста, ну и наложение идет)
Вложения
555556.jpg
555556.jpg (32.86 Кб) Просмотров: 3973

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Синхронизация RTB с PictureBox

Сообщение bon818 » 21.01.2017 (Сб) 8:31

Don Leno писал(а):(черное - это остается после выделения текста, ну и наложение идет)

НУ и?
Сейчас нормально стало?

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Синхронизация RTB с PictureBox

Сообщение Don Leno » 21.01.2017 (Сб) 8:35

Так как мне это исправить?! Как я понимаю нужна перерисовка? Если да, то как?! И нет ничего так и не работает...

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Синхронизация RTB с PictureBox

Сообщение bon818 » 21.01.2017 (Сб) 8:58

Я уже писал, но повторю - спрошу еще раз.
Самый простой способ это исправить, это вложить RichTextBox в PictureBox.
или так Form1.Picture = LoadPicture(App.Path + "\wp2.bmp")
Ты это сделал?
Вложения
modRTB_test.rar
Чо я мучаюсь, вот.
(108.07 Кб) Скачиваний: 191

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Синхронизация RTB с PictureBox

Сообщение Don Leno » 21.01.2017 (Сб) 9:12

bon818, спс!! Это я просто затупил))) Я больше думал что надо код какой то добавить, оказалось все проще))) Теперь все прекрасно работает!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 36

    TopList