|
WORD и WinApi, перемещение каретки к курсору
|
|||
---|---|---|---|
#18+
Подскажите, как в 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2004, 23:03 |
|
|
start [/forum/moderation_log.php?user_name=%D0%9F%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB+%D1%82%D1%83%D1%82]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
2ms |
others: | 767ms |
total: | 912ms |
0 / 0 |