powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / WORD и WinApi, перемещение каретки к курсору
1 сообщений из 1, страница 1 из 1
WORD и WinApi, перемещение каретки к курсору
    #32846901
likhobory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как в VBA ПРОГРАММНО переместить каретку в место расположения курсора

данный код не срабатывает:


Public Declare Function GetActiveWindow _
Lib "user32" () As Long

Public Declare Function GetCursorPos _
Lib "user32" _
(pp As POINT) As Boolean

Public Declare Function ScreenToClient _
Lib "user32" _
(ByVal hwnd As Long, pp As POINT) As Boolean

Public Declare Function SetCaretPos _
Lib "user32" _
(ByVal x As Integer, ByVal y As Integer) As Boolean

Public Type POINT
x As Long
y As Long
End Type
'-------------------

sub SetCur()

Dim screen As POINT, q as Boolean

'получаем дескриптор окна WORD
hwnd = GetActiveWindow

'получаем координаты курсора

q = GetCursorPos(screen)

'преобразуем экранные координаты в клиентские
q = ScreenToClient(hwnd, screen)

'......................здесь проверяем некое условие
'......................если условие выполняется,
'......................то перемещаем каретку в место расположения курсора

'при выполнении кода окно WORD фокус не теряет

'пытаемся переместить каретку в WORD'е - безуспешно !!! - где ошибка ?
q = SetCaretPos(screen.x, screen.y)



end sub
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / WORD и WinApi, перемещение каретки к курсору
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]