|
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/topic.php?fid=61&fpage=366&tid=2186322]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
30ms |
get tp. blocked users: |
2ms |
others: | 350ms |
total: | 470ms |
0 / 0 |