Положение каретки не в текстовом редакторе

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

Положение каретки не в текстовом редакторе

Сообщение dear » 23.04.2008 (Ср) 18:33

Добрый день!
Есть окно программы верстки (QuarkXpress) (см вложение).
В нем находятся текстовые блоки объявлений
Как можно узнать положение каретки относительно экрана?
GetCarretPos не работает
Вложения
1.tif
1.tif (47.43 Кб) Просмотров: 187

Atoman
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 109
Зарегистрирован: 01.02.2008 (Пт) 6:36

Сообщение Atoman » 23.04.2008 (Ср) 21:35

Сейчас под рукой нет VB6, только VB.NET, поэтому мой вариант на .NET.

Код: Выделить всё
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim caretpos As POINTAPI
        GetCaretPos(caretpos)
        ClientToScreen(GetFocus, caretpos)
        Label1.Text = caretpos.x.ToString
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        CreateCaret(Me.Handle, Nothing, 2, 20)
        ShowCaret(Me.Handle)
    End Sub

dear
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 23.01.2008 (Ср) 23:12

Сообщение dear » 24.04.2008 (Чт) 21:30

Ничего не получилось

Private Sub Form_Load()
SetWindowPos Me.Hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

Private Sub Timer1_Timer()

Dim caretpos As POINTAPI
Dim sa As Long
Dim titlebar As String
Dim slength As Long
Dim MouseCoord As POINTAPI
Dim HandleCurWin As Long
Dim HandleCurClass As String
Dim CurClassName As String


GetCursorPos MouseCoord
HandleCurWin = WindowFromPoint(MouseCoord.Left, MouseCoord.Top)

titlebar = String$(256, " ")
slength = GetWindowText(HandleCurWin, titlebar, 255)
titlebar = Left$(titlebar, InStr(titlebar, vbNullChar) - 1)

CurClassName = String$(256, " ")
slength = GetClassNameA(HandleCurWin, CurClassName, 255)
CurClassName = Left$(CurClassName, InStr(CurClassName, vbNullChar) - 1)

GetCaretPos caretpos
ClientToScreen GetFocus, caretpos

Label1.Caption = HandleCurWin & vbCrLf & _
titlebar & " " & CurClassName & vbCrLf & _
caretpos.Left & " " & caretpos.Top

End Sub


В тексбоксе на форме исправно меняются координаты, то же самое в самом редакторе VB
При переходе даже в Word, координаты замирают и не двигаются при движении курсора
В чем ошибка?


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

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

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

    TopList