Тема: Как свернуть/ развернуть форму на vba
Добрый вечер, Коллеги!
Поискал на эту тему материал не нашёл. Можноли форму написанную на VBA свернуть/ развернуть, для доступа к полю чертежа, есть ли альтернативный метод данный операции?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как свернуть/ развернуть форму на vba
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый вечер, Коллеги!
Поискал на эту тему материал не нашёл. Можноли форму написанную на VBA свернуть/ развернуть, для доступа к полю чертежа, есть ли альтернативный метод данный операции?
Покопайте в сторону модальных форм. Свойство .ShowModal = True/False.
Или можно временно отгрузить форму. Именно свернуть не получится.
Какая функциональность вам вообще нужна?
Если, например, как в акадовском диалоге создания блока (временный выход из форму с запросом точки), то у меня с этой целью на кнопке, например, висит вот такой код:
Private Sub CommandButton4_Click() Me.Hide Dim Point1 As Variant 'Запрашиваем точку чистого пола On Error Resume Next Err.Clear Point1 = ThisDrawing.Utility.GetPoint(Prompt:="Введите точку чистого пола:") If IsError(Point1(0)) Then GoTo FAIL On Error GoTo 0 TextBox1.Value = Point1(1) FAIL: Me.Show End Sub
> Александр Бауск /ctrl e/
В принципе как вариант прокатывает, Textbox1 сделаю невидимым, по клику будет выходить в форму. Благодарю! Сам попробывал через API не сработало
Option Explicit
' описание API-функций и констант
#If Win32 Then
Private Declare Function SetWindowLong Lib _
"user32" Alias "SetWindowLongA" (ByVal _
hWnd As Long, ByVal nIndex As Long, ByVal _
dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib _
"user32" Alias "GetWindowLongA" (ByVal _
hWnd As Long, ByVal nIndex As Long) As Long
#Else
Declare Function SetWindowLong Lib "User" _
(ByVal hWnd As Integer, ByVal nIndex As _
Integer, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "User" _
(ByVal hWnd As Integer, ByVal nIndex As _
Integer) As Long
#End If
Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)
И сама функция
Public Sub SetCaptionButtons(Frm As Form)
Dim lRet As Long
lRet = GetWindowLong(Frm.hWnd, GWL_STYLE)
SetWindowLong Frm.hWnd, GWL_STYLE, lRet Or _
WS_MINIMIZEBOX * (Abs(Frm.MinButton)) Or _
WS_MAXIMIZEBOX * (Abs(Frm.MaxButton))
End Sub
Наберусь наглости спросить: а с аналогичным кодом по извлечению длины из примитива сталкивались?
> а
с аналогичным кодом по извлечению длины из примитива сталкивались?
Эээ... не понял. Можно конкретнее? каким образом аналогичным?
Я бы просто (в лиспе) сделал бы набор, далее просто из свойств примитива извлёк длину, в VBA под Acad я просто пишу формы.
Ну можно сделать запрос на выбор примитива GetEntity (вместо GetPoint), а потом точно также из его свойств забрать длину.
С Лиспом сравнивать не могу, я в нем не компетентен.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как свернуть/ развернуть форму на vba
Форум работает на PunBB, при поддержке Informer Technologies, Inc