Новый участник
Сообщения: 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
|