Тема: Чтобы форма была всегда поверх окна AutoCAD

Всем привет!
Надо сделать в VB так чтобы форма была всегда поверх окна AutoCAD, то есть была как бы его диалоговым окном. В VBA с этим проблем нет, это по умолчанию происходит. Но VBA черезчур урезаный.
Суть проблемы в том что мне надо динамически на форме отрисовывать небольшие примитивы, в соответствии с указанными пользователем данными, наподобие диалогового окна при запуске команды _array.
Зная что вы скорее всего мне посоветуете воспользоваться поиском, заранее скажу что долго и упорно искал, но нашел всего два поста "Вопрос Н.Н.Полещуку по VB.NET" и "Передача управления от программы на VB к AutoCAD", но там этого нет.
У меня VB 6.0 и AutoCAD 2002
Заранее спасибо.

Re: Чтобы форма была всегда поверх окна AutoCAD

Зная что вы скорее всего мне посоветуете воспользоваться поиском, заранее скажу что долго и упорно искал...

а ответ чуть ниже вашего вопроса находится :)
https://www.caduser.ru/forum/topic24828.html

Re: Чтобы форма была всегда поверх окна AutoCAD

Не думаю. Судя по всему, идет попытка создания СОМ-сервера. В таком случае надо в методе класса прописывать нечто типа

frmCOM_Server_form.Show vbModal

Тогда форма показывается в модальном режиме.

Re: Чтобы форма была всегда поверх окна AutoCAD

2 SmeL

Вообще ничего не понял.
2  kpblc:
это приводит к тому что форма просто становится диалоговой, а как ее запустить как "дочернее" окно автокада?

Re: Чтобы форма была всегда поверх окна AutoCAD

Я на VB пользуюсь таким кодом. Он позволяет устанавливать окно (frmMain) поверх всех окон или снимать это свойство. В зависимости от значения bTop.

Public Const HWND_BOTTOM = 1
Public Const HWND_TOP = 0
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H4
Public Const SWP_SHOWWINDOW = &H40
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Function WindowPos(ByVal bTop As Boolean) As Long
   '
   '
   '
   Dim wFlags As Long
   Dim hWndInsertAfter As Long
   '
   wFlags = SWP_NOMOVE + SWP_NOSIZE + SWP_SHOWWINDOW
   hWndInsertAfter = IIf(bTop, HWND_TOPMOST, HWND_NOTOPMOST)
   WindowPos = SetWindowPos(frmMain.hwnd, hWndInsertAfter, 1, 1, 1, 1, wFlags)
End Function