Тема: Как удержать окно программы поверх окна Акада?

Работаю с Акадом из ВБ6.0  Запускается форма, на ней кнопка. При нажатии кнопки форму скрываю (Me.Hide) и выполняю функцию:
acadDoc.Utility.GetEntity returnObj, basePnt
После указания объекта выполняю Me.Show vbModal. Форма появляется, но под Акадом.
Подскажите пожалуйста, как принудительно расположить форму поверх Акада?

Re: Как удержать окно программы поверх окна Акада?

Me.Show
Me.Activate

Re: Как удержать окно программы поверх окна Акада?

Я не нашел у формы такого свойства  - Activate
Может я не так понял...?
А Me.Show не помогает!

Re: Как удержать окно программы поверх окна Акада?

sorry
Activate WindowName

Re: Как удержать окно программы поверх окна Акада?

Я дико извиняюсь за, вероятно, глупые вопросы.
Свойство  Activate нашел только у acadDoc (acadApp), но не знаю как им управлять. (WindowName - это title активного чертежа?)
Подскажи пожалуйста, как это делается.

Re: Как удержать окно программы поверх окна Акада?

в этом-то весь фокус!!, что фокус "активного приложения" ушел на автокад...
и ваша программа работает теперь в "теневом режиме", надо вернуть фокус своей программе.
в VB6 не силен и потому немогу конкретно "ткнуть" в нужное место...
вероятно это что-то на уровне Application "рыть" надо: свойства, методы...

Re: Как удержать окно программы поверх окна Акада?

и еще это легко сделать используя API функции Windows: SetActiveWindow

Re: Как удержать окно программы поверх окна Акада?

Не пробовал, но на уровне идеи: минимизировать окно автокада и оно потеряет фокус!?

Re: Как удержать окно программы поверх окна Акада?

в теории - теряет, но что получится в случае OLE-сервера...
всякие тут камни вылезают...
но минимизировать - это вариант, все-таки, на 2-м месте после API.

Re: Как удержать окно программы поверх окна Акада?

Может я чего не понял, но я подобные вопросы решаю одной командой Userform.show где Userform - имя формы. (без парамаетра vbModal)

Re: Как удержать окно программы поверх окна Акада?

> callisto
Идея с API понравилась.
Попробовал сделать так:
нахожу хэндл нужного окна по заголовку, затем:
dim Retval as Long
Retval = SetActiveWindow(hwnd)
и никакого результата. Возвращает 0 (ноль). В MSDN говорится, что должен возвращать значение хэндла при успешном действии, или NULL при неудачном. А у меня всегда ноль!
Может что то не так делаю?

Re: Как удержать окно программы поверх окна Акада?

Private Sub Command1_Click()
Dim ACADApp As AcadApplication
Dim ent As AcadEntity
    Set ACADApp = GetObject(, "AutoCAD.Application")
    AppActivate "Auto" ; Can be AuotDesk or any title
    ACADApp.ActiveDocument.Utility.GetEntity ent, 0
    AppActivate "Form1" ; Title of main window
End Sub
;Set this code for  Command1 button