Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как получить координаты ячейки через API?
 
 автор: Силыч   (10.10.2007 в 14:58)   личное сообщение
 
 

ячейки(таблицы, спридшита, неважно)

ведь курсор же при проведении по ней мышью - меняется? значить можно определить область в которой он определен.

как?

  Ответить  
 
 автор: Силыч   (10.10.2007 в 17:15)   личное сообщение
 
 

вопрос по другому - как получить hwnd активной ячейки в таблице?

  Ответить  
 
 автор: Serge Gavrilov   (10.10.2007 в 18:23)   личное сообщение
 
 

Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long?

  Ответить  
 
 автор: Силыч   (10.10.2007 в 21:17)   личное сообщение
 
 

в принципе уже кое-что получилось :) часть ответа в разделе VB

общая проблема в том - как определить left-top активной ячейки owc компоненты spreadsheet

left определил
осталось учесть прокрутку скроллбара или колесом мыши
и разобраться с top :)

  Ответить  
 
 автор: Силыч   (11.10.2007 в 11:02)   личное сообщение
 
 

возвращает дескриптор компоненты spreadsheet
а мне хочется достучаться до ячейки :(
пока рою инет

  Ответить  
 
 автор: Силыч   (11.10.2007 в 17:12)   личное сообщение
 
 

вот


    '-- определяем координаты выбранной ячейки
    Dim hwndRichEdit&
    Dim sText$
    Dim pt As POINTAPI
    Dim rc As RECT
    Dim fc As RECT
    '-- считаем координаты окна
    Call GetWindowRect(Me.hwnd, fc)
    '-- получить хэндл spreadsheet
    v = GetSpshWnd(Me.hwnd)
    '-- поискать нужный класс
    hwndRichEdit = FindWindowEx(v, ByVal 0&, "RichEdit20W", vbNullString)
    '-- определить координаты контрола
    GetWindowRect hwndRichEdit, rc
    If hwndRichEdit <> 0 Then
            dx = Me.ScaleX(rc.Left - fc.Left - 4, vbPixels, vbTwips)
            dy = Me.ScaleY((rc.Top - fc.Top) - 4 - _
                        (GetSystemMetrics(SM_CYMENUSIZE) + _
                         GetSystemMetrics(SM_CXBORDER) + _
                         GetSystemMetrics(SM_CYCAPTION)) + _
                         (rc.Bottom - rc.Top), vbPixels, vbTwips)
            'ListRequest Me.List1, "select f.description from fin.CLT_UKRUP_GRP f order by IDGRP"
            Me.List1.Left = dx
            Me.List1.Top = dy
            Me.List1.Width = Me.ScaleX((rc.Right - rc.Left), vbPixels, vbTwips)
            Me.List1.Visible = True
    End If


выводит там где нужно. причем не надо заморачиваться на скроллбары и т.д.
одна проблема - никак не могу определить координаты этого RichEdit20W до того как он появится в выбранной ячейке :)

  Ответить  
 
 автор: Силыч   (12.10.2007 в 17:02)   личное сообщение
45 Кб.
 
 

победко

удалось повесить на выбранную ячейку spreadsheet свой listbox
можно повесить все, что угодно

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList