Получения позиции символа в riched20.dll

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Получения позиции символа в riched20.dll

Сообщение bon818 » 03.05.2012 (Чт) 3:21

Использую функцию получения позиции символа в riched20.dll

Код: Выделить всё
Private Const WM_USER               As Long = &H400
Private Const EM_POSFROMCHAR        As Long = (WM_USER + 38)
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Sub GetPosFromChar(ByVal lIndex As Long, ByRef xPixels As Long, ByRef yPixels As Long)
    Dim lxy As Long
    lxy = SendMessage(RTFBox_Hwnd, EM_POSFROMCHAR, lIndex, vbcNull)
    xPixels = (lxy And &HFFFF&): yPixels = (lxy \ &H10000) And &HFFFF&
   
    Debug.Print "lIndex " & lIndex & "  ,"; Timer
    Debug.Print "xPixels " & lxy & "  ,"; Timer
    Debug.Print "yPixels " & yPixels & "  ,"; Timer
   
End Sub



После 65536(256*256) символа SendMessage возвращает 0 и снова включается примерно на 69700 символе! ??? :?:

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

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

Сейчас этот форум просматривают: AhrefsBot, Mail.ru [бот] и гости: 83

    TopList