Два простых вопроса: RTF и MouseDown

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Два простых вопроса: RTF и MouseDown

Сообщение Ruslan Demidow » 25.09.2004 (Сб) 7:38

У меня два вопроса к уважаемым посетителям форума:
1. Есть RichTextBox. В нём текст. Можно ли добавить этот текст в документ Word (дописать)? Т.е. сохранить не в новый файл, а добавить в существующий. Использовать объект Word.Application не предлагать.

2. Заметил такую странность событие Toolbar_MouseDown происходит и при нажатии на саму панель и при нажатии на кнопку на панели. Хотя для кнопок есть отдельное событие Toolbar1_ButtonClick. Как бы мне их разграничить? А то я хочу сделать перетаскивание тулбара левой кнопкой мыши за пустое, не занятое кнопками, место панели. Это без проблем. Но тогда при нажатии на любую кнопку на панели она у меня только перетаскивается, до нажатия на кнопку уже не доходит.
Спасибо за внимание.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 25.09.2004 (Сб) 11:08

Дык при нажатии на кнопку возвращается её индекс. Если значение не сответствует какой-либо кнопке, то ты ткнул на саму панель.
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Два простых вопроса: RTF и MouseDown

Сообщение tyomitch » 25.09.2004 (Сб) 11:39

Ruslan Demidow писал(а):У меня два вопроса к уважаемым посетителям форума:
1. Есть RichTextBox. В нём текст. Можно ли добавить этот текст в документ Word (дописать)? Т.е. сохранить не в новый файл, а добавить в существующий. Использовать объект Word.Application не предлагать.

В .doc - едва ли.
В .rtf - гипотетически возможно, например, загрузить существующий документ в невидимый RTB, дописать ему в конец то, что нужно, и всё сохранить.
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 25.09.2004 (Сб) 14:32

tyomitch писал(а):
Ruslan Demidow писал(а):У меня два вопроса к уважаемым посетителям форума:
1. Есть RichTextBox. В нём текст. Можно ли добавить этот текст в документ Word (дописать)? Т.е. сохранить не в новый файл, а добавить в существующий. Использовать объект Word.Application не предлагать.

В .doc - едва ли.
В .rtf - гипотетически возможно, например, загрузить существующий документ в невидимый RTB, дописать ему в конец то, что нужно, и всё сохранить.
Ясно. Так и сделаю. Но видимо будет медленно, если сохранять таким образом несколько сообщений подряд.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 25.09.2004 (Сб) 14:33

Zer писал(а):Дык при нажатии на кнопку возвращается её индекс. Если значение не сответствует какой-либо кнопке, то ты ткнул на саму панель.

Ок. Попробую.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.09.2004 (Сб) 15:40

Ruslan Demidow писал(а):Ясно. Так и сделаю. Но видимо будет медленно, если сохранять таким образом несколько сообщений подряд.

Сорри, а зачем .RTF для плейнтекстовых сообщений?
Я думал, у тебя RTB используется только для более красивого отображения?

В принципе, формат .RTF не такой уж тайный, и если скорость критична, можно собственный RTF-writer написать. Я свой писал ;-) - ничего сложного, просто скучно :-|
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 25.09.2004 (Сб) 20:03

tyomitch писал(а):
Ruslan Demidow писал(а):Ясно. Так и сделаю. Но видимо будет медленно, если сохранять таким образом несколько сообщений подряд.

Сорри, а зачем .RTF для плейнтекстовых сообщений?

Да я вьювер фидошных баз пишу (в формате FIPS).
Ну и впихиваю в него всякую всячину: отображение квот разными цветами и шрифтами, смайлы и т.п.

Я думал, у тебя RTB используется только для более красивого отображения?

Так и есть. Просто пользователи просят сделать возможность дописывать сообщения со всем форматированием в документ RTF.

В принципе, формат .RTF не такой уж тайный, и если скорость критична, можно собственный RTF-writer написать. Я свой писал ;-) - ничего сложного, просто скучно :-|

Я подумал: сообщение нужно загнать в RTF, раскрасить, применить форматирование, вставить смайлы...
Не, пожалуй не буду писать. Хотят в RTF - пусть ждут... :)
Сделаю пока возможность дописывать по одному сообщению - текущему, которое отображается. :)
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 26.09.2004 (Вс) 12:11

Zer писал(а):Дык при нажатии на кнопку возвращается её индекс. Если значение не сответствует какой-либо кнопке, то ты ткнул на саму панель.

Не прокатило - во-первых обработка нажатия кнопок у меня в ButtonClick - щелчок по панели туда никак не попадает.
А в MouseDown обрабатывается любой щелчок на панели, независимо от того где: на кнопке или на панели.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.09.2004 (Вс) 12:56

Ruslan, лови:
Код: Выделить всё
Option Explicit

Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
Private Const WM_USER = &H400&
Private Const TB_HITTEST = WM_USER + 69&

Private Sub Toolbar1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim pt As POINTAPI, btn As Long
With pt
    .x = x / Screen.TwipsPerPixelX
    .y = y / Screen.TwipsPerPixelY
End With
btn = SendMessage(FindWindowEx(Toolbar1.hWnd, 0, "msvb_lib_toolbar", vbNullString), TB_HITTEST, 0, pt)
If btn < 0 Then
    Debug.Print "Не попали в кнопку"
Else
    Debug.Print "Попали в кнопку " & btn
End If
End Sub
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 27.09.2004 (Пн) 7:46

tyomitch писал(а):Ruslan, лови:
Код: Выделить всё
Option Explicit

Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
==== Сгрызено моей собакой ====
    Debug.Print "Попали в кнопку " & btn
End If
End Sub

Тёмыч, спасибо! Уже в который раз выручаешь. :)
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


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

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

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

    TopList