Смайлы в RichTextBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Смайлы в RichTextBox

Сообщение DKbelRoma » 05.01.2008 (Сб) 14:46

Вот нашол пример ввода в RichTextBox смайлов и немогу понять вот что!
Я сразу покажу код, что бы не запутаться.
Код: Выделить всё
Private Sub Command1_Click()
'First, just add plain text:
rchText1.SelText = rchText1.SelText & "Guest: " & Text1 & vbCrLf

'Then change what needs to be changed to pictures:
RefreshPics
DoEvents
rchText1.SelStart = Len(rchText1.Text) 'Put the start at the end, thats where you want to add the next line
Text1 = ""
Call Text1.SetFocus
End Sub

Private Sub Form_Load()
rchText1.OLEObjects.Clear 'Clear the ole objects to prevent errors
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
DoEvents
rchText1.OLEObjects.Clear 'You must add this or the
                            'program will crash. This doesnt
                            'happen in Windows 2k
DoEvents
End Sub

Sub RefreshPics() 'This scans the text for :) and (l)'s to change
Dim lFoundPos As Long           'Position of first character
                                        'of match
Dim lFindLength As Long         'Length of string to find

Dim MakeSure As Boolean 'I have this to do the procedure twice, just to "make sure"


GoTo Skip:
Start:
MakeSure = True
Skip:

lFoundPos = rchText1.Find(":)", 0, , rtfNoHighlight)
        While lFoundPos > 0
          rchText1.SelStart = lFoundPos
          'The SelLength property is set to 0 as
          'soon as you change SelStart
          rchText1.SelLength = 2
          rchText1.SelText = ""
          rchText1.OLEObjects.Add , , App.Path & "\smile.bmp" 'Add the picture after it has deleted the string
          DoEvents
          'Attempt to find the next match
          lFoundPos = rchText1.Find(sFindString, lFoundPos + 2, , rtfNoHighlight)
Wend
If MakeSure = False Then GoTo Start

' I guess by changing or adding a few lines, you
'   can make it add more pictures with different strings.

End Sub

Так как обьяснения на англ.яз. я многого не понял.
Смысл такой если в textbox ввести ":)" то в RichTextBox покажет smile.bmp, который лежит в дериктории с программой(кстате смайл 12x12) Так вот как только я написал ":)" в RichTextBox появился растянутый смайл гдет то 60x60 (если не больше). Как вы понимаете в растянутом виде он выглядит не очень, но это только одна проблема. Через 3 сек. после появляния смайла в RichTextBox, картинка (smile.bmp) открывается "Программой просмотра изображений и факсов".
Вопрос: Как уменьшить размер смайла в RichtextBox, что бы зделать его более красивым и сделать, что бы он не открывался при вводе ":)"
Заранее спасибо!

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

Сообщение Хакер » 05.01.2008 (Сб) 16:32

DKbelRoma
Я бы сжалился, если бы тема смайлов в RTB не обсуждалась бы сто раз на этом форуме. Но она обсуждалась, и, сдерживая своё обещания (относительно беграмотности), я закрываю этот топик.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

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

    TopList