Список форумов Конференция САПР Bentley MicroStation Конференция САПР Bentley MicroStation
www.ustation.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Получение handle окна

 
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное
Предыдущая тема :: Следующая тема  
Автор Сообщение
Олег



Зарегистрирован: 26.04.2006
Сообщения: 7
Откуда: Москва

СообщениеДобавлено: Ср Апр 26, 2006 10:58 am    Заголовок сообщения: Получение handle окна Ответить с цитатой

Извините, если вопрос идиотский, но как мне в microstation узнать handle окна какой-нибудь UserForm. А то UserForm.hwnd не работает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Ср Апр 26, 2006 11:33 am    Заголовок сообщения: Ответить с цитатой

Да, они почему-то убрали HWND из свойств...
Иначе как функцией FindWindow здесь, имхо, не обойтись
Код:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowsName As String) As Long
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Олег



Зарегистрирован: 26.04.2006
Сообщения: 7
Откуда: Москва

СообщениеДобавлено: Ср Апр 26, 2006 12:27 pm    Заголовок сообщения: Ответить с цитатой

А как задать lpWindowsName.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Ср Апр 26, 2006 12:38 pm    Заголовок сообщения: Ответить с цитатой

Олег писал(а):
А как задать lpWindowsName.

Что-то типа того...
Код:

Dim hwnd As Long
hwnd = FindWindow("ThunderDFrame", UserForm.Caption)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kav



Зарегистрирован: 13.02.2006
Сообщения: 14

СообщениеДобавлено: Ср Апр 26, 2006 1:56 pm    Заголовок сообщения: Ответить с цитатой

Есть еще такая MDL функция:

HWND mdlNativeWindow_getWindowHandle ( MSWindow* windowP );

(Gets the HWND associated with a given MicroStation's window )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Ср Апр 26, 2006 2:10 pm    Заголовок сообщения: Ответить с цитатой

kav писал(а):
Есть еще такая MDL функция:
HWND mdlNativeWindow_getWindowHandle ( MSWindow* windowP );

to kav
Насчет передаваемого параметра...
Есть мысли, как в VBA добраться до пойнтера MSWindow* windowP для UserForm?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kav



Зарегистрирован: 13.02.2006
Сообщения: 14

СообщениеДобавлено: Чт Апр 27, 2006 7:41 am    Заголовок сообщения: Ответить с цитатой

С VBA совсем незнаком. Если UserForm это диалог, и можем получить его dbP, то *dbP и *windowP одно и то-же.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Чт Апр 27, 2006 9:37 am    Заголовок сообщения: Ответить с цитатой

Насколько я знаю, окна VBA не являются родными для MS, то есть не принадлежат классу MStnChild, и доступ к ним можно получить только через Windows API. Класс VBA окон, как можно прочитать выше, зовется ThunderDFrame
По моему так...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group