Страница: 1 |
Страница: 1 |
Вопрос: HWnd ThisDocument.ActiweWindow
Добавлено: 29.12.08 17:17
Автор вопроса: GDK
Есть ли какой-нибудь "нормальный" способ получить Hwnd окна документа, даже если оно свёрнуто.
Это понадобилось для вывода окна формы так, чтобы его можно было сделать дочерним для ЛЮБОГО документа и переключать между документами при необходимости. Под "ненормальными" способами понимаю сделать окно активным и с пом. GetForegroundWindow() получать HWnd; Искать HWnd окна по его классу и названию.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #1
Добавлено: 31.12.08 13:45
Почему поиск окна ты считаешь ненормальным способом? Встроенного свойства hWnd в объектной модели Office/Word/Excel нет.
Номер ответа: 2
Автор ответа:
Father
Вопросов: 0
Ответов: 159
Профиль | | #2
Добавлено: 01.01.09 10:11
Если считать, что документы Excel - это mdi-child окна, то найти активный можно через WM_MDIGETACTIVE.
Имеей ввиду: посылается в MDIclient.
Номер ответа: 3
Автор ответа:
GDK
Вопросов: 13
Ответов: 348
Профиль | | #3
Добавлено: 15.01.09 12:53
Mc_black, если открыто несколько документов, у некоторых из них могут быть одинаковые заголовки. Т.к. класс окон одинаковый, способ поиска по классу и заголовку окажется ненадёжным.
Father, для Excel всё же можно поискать окна по заголовку и классу потому что в Excel нельзя открывать два файла с одинаковым именем. Значит никогда не будет два окна Excel с одинаковым заголовком, значит будет гарантия, что Hwnd найден верно. А вот для Word{a} это уже не подойдёт.
Что то не понятно с MDIclient. Если это окно то чтобы послать в него - надо выяснить его Hwnd. А как?