Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
КД
Зарегистрирован: 30.10.2007 Сообщения: 25
|
Добавлено: Пн Ноя 12, 2007 6:06 am Заголовок сообщения: Встраивание окна MI в контрол формы Access |
|
|
Пытаюсь запустить MapInfo и затем встроить (переподчинить) его окно ole-элементу. Однако, что-то у меня не получается, пишет – неправильный идентификатор окна (в качестве oleMapInfo выступает объект MapInfo Map):
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Dim strPathToTable As String
Dim strMapName As String
Dim msg As String
On Error GoTo ErrorHandler
DoCmd.Hourglass True
'задаем путь к таблице и имя таблицы
strPathToTable = "C:\Комаров\Базы данных\"
'в будущем будем выбирать
'strMapName = Me.cboMaps.Column(1)
strMapName = "Точки_сбора.tab"
'сформируем окончательную строку
strCriteria = "Open Table """ & strPathToTable & "" & strMapName & """"
'запускаем MapInfo в фоновом режиме
Set miNewApp = CreateObject("MapInfo.Application")
'захватываем нашей прогой сообщения MapInfo
msg = "Set Application Window " & Me.hWnd
miNewApp.Do msg
'узнаем хэндл ole-объекта
With Me.oleMapInfo
lngHandle = GetDC(hWnd)
'переподчиним окну с этим хэндлом окно MapInfo (почему-то не работает, только с
'хэндлом окна формы)
msg = "Set Next Document Parent " & lngHandle & " Style 1"
miNewApp.Do msg 'вот здесь вываливается ошибка
End With
'открываем интересующую нас таблицу
miNewApp.RunCommand strCriteria
Rem miNewApp.Visible = True
DoCmd.Hourglass False |
|
Вернуться к началу |
|
|
FedorinoFF
Зарегистрирован: 01.02.2007 Сообщения: 272 Откуда: Санкт-Петербург
|
Добавлено: Чт Янв 31, 2008 9:49 pm Заголовок сообщения: |
|
|
GetDC совсем лишнее... надо просто получить Handle окна или панели, в которую нужно интегрировать окно Mapinfo. |
|
Вернуться к началу |
|
|
|