Drag & Drop c картинками

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

Drag & Drop c картинками

Сообщение vfedorov » 09.08.2005 (Вт) 12:38

Проблема такая: надо в RichTextBox перетаскивать картинки например из проводника. Это получается. Далее внутри RichTextBox надо перемещать картинки - с этим хуже. Вот исходный код

Private Sub Text1_OLEDragDrop(Data As RichTextLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
On Error GoTo Error
If Effect = 7 Then
If Data.Files.Count >= 1 Then
Dim iStartExt As Integer
iStartExt = InStr(1, Data.Files(1), ".")
Dim sExt As String
sExt = Mid(Data.Files(1), iStartExt)

If (sExt = ".bmp") Or (sExt = ".jpg") Or (sExt = ".gif") Then
m_picTemp.Picture = LoadPicture(Data.Files(1)) ' Insert picture to picture box
Clipboard.Clear ' Cleat buffer
Clipboard.SetData m_picTemp.Picture, vbCFBitmap ' Send buffer
If err = False Then
Text1.SetFocus
Text1.SelStart = Len(Text1.Text)
SendKeys "+{INSERT}" ' Insert image...
End If
End If
End If
ElseIf Effect = 3 Then 'Вот тут перемешение внутри RichTextBox
m_picTemp.Picture = Data.GetData(vbCFMetafile) ' Insert picture to picture box
Clipboard.Clear ' Cleat buffer
Clipboard.SetData m_picTemp.Picture, vbCFMetafile ' Send buffer
If err = False Then
Text1.SetFocus
Text1.SelStart = Len(Text1.Text)
SendKeys "+{INSERT}" ' Insert image...
End If
End If
Error:
End Sub

т.е. я при перемешении вставляю картинку в конец. А надо на позицию x y. Как преобразовать координаты x и y в позицию символов в RichTextBox?
Или это можно сделать как - нибудь по - другому?

Заранее спасибо

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

Сообщение GSerg » 09.08.2005 (Вт) 14:25

The EM_CHARFROMPOS message retrieves information about the character closest to a specified point in the client area of an edit control. You can send this message to either an edit control or a rich edit control.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

vfedorov
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 28.07.2005 (Чт) 13:41

Сообщение vfedorov » 09.08.2005 (Вт) 18:17

Спасибо
Помогло!!! :D


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

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

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

    TopList