Тема: Как поменять позицию окна Документа?

Необходимо поменять позицию окна текущего документа, но свойств Left и Top у него нет. Такие свойства только у Application, а это уже окно программы т.е. не то, что нужно.
Нашел в Help'е только следующую инфу, но опять же, свойств Left и Top  нету!!

Position and Size the Document Window
Use the Document object to modify the position and size of any document window. The Document window can be minimized or maximized by using the WindowState property, and you can find the current state of the Document window by using the WindowState property.
Position a Document window
This example uses the Width and Height properties to set the active Document window to 400 pixels wide by 400 pixels high.
Sub Ch3_SizeDocumentWindow()
ThisDrawing.Width = 400
ThisDrawing.Height = 400
End Sub
Maximize the active Document window
Sub Ch3_MaximizeDocumentWindow()
ThisDrawing.WindowState = acMax
End Sub
Minimize the active Document window
Sub Ch3_MinimizeDocumentWindow()
ThisDrawing.WindowState = acMin
End Sub
Find the current state of the active Document window
Sub Ch3_CurrentWindowState()
    Dim CurrWindowState As Integer
    Dim msg As String
    CurrWindowState = ThisDrawing.WindowState
    msg = Choose(CurrWindowState, "normal", _
                 "minimized", "maximized")
    MsgBox "The document window is " + msg
End Sub

Помогите, плиз..

Re: Как поменять позицию окна Документа?

Где вы гуру AutoCAD'a & VBA?

Re: Как поменять позицию окна Документа?

The VB or ObjectARX application can use the HWNDFrame parameter to get the coordinates of the window, convert those coordinates to either screen or parent coordinates, and use this information to position other windows

Re: Как поменять позицию окна Документа?

Эта вырезка конечно познавательная, но она говорит нам об использовании хэндела application'а для координирования самого application, с возможностью последующего конвертирования этих координат для любых экранов или в родительские(исходные) координаты(координаты операционной системы? ), и использования этой информации для позиционирования других окон.
Перевод немного корявый, но суть ясна.
Ну и....? Про внутренние окна ни слова.  У внутренних окон даже HWND нет, он только у application.
Или я чегой-то не понимаю...

Re: Как поменять позицию окна Документа?

> координат
для любых экранов или в родительские

Re: Как поменять позицию окна Документа?

вам придется немножко изучить API in VB
''declarations

Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
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 Const SWP_NOZORDER = &H4
Public Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type

''implementation

Sub m()
Dim hand As Long
Dim rec As RECT
    hand = ThisDrawing.hwnd
    GetWindowRect hand, rec
    SetWindowPos hand, 0, rec.Left, rec.Top, rec.Right - rec.Left, rec.Bottom - rec.Top, SWP_NOZORDER
End Sub

Re: Как поменять позицию окна Документа?

>
cadhelp

Спасибочки! Усе работает, как часы!
Про заявление о том, что у внутренних окон нет HWND - эт. я чегой-то ступил, не туда глазками стрелял.
Он есть у всех окошек :

application.HWND
ThisDrawing.HWND
ActiveDocument.HWND

У меня правда навернулся еще вопросик:

SWP_NOZORDER = &H4

В API-Guide:
SWP_NOZORDER
Retains the current Z order (ignores the hWndInsertAfter parameter)

По-русски: Параметр содержит текущий уровень по оси Z.
Почему ты его задаешь в Hex-коде и почему =4?

Re: Как поменять позицию окна Документа?

http://msdn.microsoft.com/library/defau … dowpos.asp
скачай гляделку для VB
она тебе подскажет как описывать API ф-ции и глобальные в VB
http://www.google.ca/search?hl=en&q … &meta=
если не разберешся - спроси

Re: Как поменять позицию окна Документа?

Ну, теперь все в шоколаде... :)