Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Общие вопросы по коду
Показать сообщение отдельно

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Если в качестве текстового редактора вы используете элемент управления Rich Textbox, то полезно узнать не только число строк (о чем говорилось в предыдущем совете), но также, например, и текущую позицию курсора. Это можно сделать с помощью еще одной API-функции — SendMessageByNum:
Листинг 1.
Private Declare Function SendMessageByNum Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const EM_LINEFROMCHAR = &HC9 Private Const EM_LINEINDEX = &HBB
Public Function GetCurrentLine(TxtBox As Object) As Long
' определение текущей строки в окне
With TxtBox
GetCurrentLine = SendMessageByNum(.hwnd, _
EM_LINEFROMCHAR, CLng(.SelStart), 0&) + 1
End With
End Function
Public Function GetCurrentColumn(TxtBox As Object) As Long
' определение текущей колонки в окне
With TxtBox
GetCurrentColumn = .SelStart - SendMessageByNum(.hwnd, _
EM_LINEINDEX, -1&, 0&) + 1
End With
End Function
Вот как их можно использовать:
Листинг 2.
Private Sub Command1_Click()
MsgBox "Текущая строка = " & GetCurrentLine(RichTextBox1)
End Sub
Private Sub Command2_Click()
MsgBox "Текущая колонка = " & GetCurrentColumn(RichTextBox1)
End Sub

Отправлено: 16:53, 19-09-2010 | #333

Название темы: Общие вопросы по коду