![]() |
Translate to: |
||||||
| Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
| Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО | ||
Во многих примерах, описанных в других разделах, уже использовались диалоговые окна. Вот ссылки на эти примеры:
Эквидистантная копия на заданный слой с примером диалогового окна для выбора слоев
Масштабирование изображения по блоку, выбранному с помощью диалогового окна
Создание текстовых стилей на основании текстового файла
Удаление из базы данных чертежа всех неиспользуемых объектов с помощью диалогового окна
Пример диалогового окна с информацией о слоях
Диалоговое окно для вставки блока
Диалоговое окно для вставки в чертеж внешних ссылок
Сохранение строки текста в области расширенных данных
Сохранение в области расширенных данных имени пользователя, даты и примечаний
Выбор цвета в диалоговом окне с помощью функции API
Перевод стандартных цветов AutoCAD в формат RGB
Перевод цветов AutoCAD в формат RGB (учтены все 256 цветов)
Открытие и сохранение файлов с помощью API
Выбор папки в диалоговом окне с помощью API
Добавьте в проект новую форму и разместите на ней следующие элементы:
У меня получилось вот что:

Добавьте в модуль формы следующий код:
Option Explicit
Public Function MakePreview() As String
Dim objSelSet As AcadSelectionSet
Dim strCurDir As String
On Error GoTo Err_Control
If Right(CurDir, 1) <> "\" Then
strCurDir = CurDir & "\"
Else
strCurDir = CurDir
End If
Set objSelSet = vbdPowerSet("userselection")
objSelSet.SelectOnScreen
ThisDrawing.Export strCurDir & "temp", "wmf", objSelSet
MakePreview = strCurDir & "temp.wmf"
Exit_Here:
Exit Function
Err_Control:
MsgBox Err.Description
MakePreview = vbNullString
Resume Exit_Here
End Function
Public Function vbdPowerSet(strName As String) As AcadSelectionSet
Dim objSelSet As AcadSelectionSet
Dim objSelCol As AcadSelectionSets
Set objSelCol = ThisDrawing.SelectionSets
For Each objSelSet In objSelCol
If objSelSet.Name = strName Then
objSelCol.Item(strName).Delete
Exit For
End If
Next
Set objSelSet = ThisDrawing.SelectionSets.Add(strName)
Set vbdPowerSet = objSelSet
End Function
Private Sub CommandButton1_Click()
Dim strFile As String
Me.Hide
strFile = MakePreview
If Not strFile = vbNullString Then
Image1.Picture = LoadPicture(strFile)
Kill strFile
End If
Me.Show
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub OptionButton1_Click()
Image1.PictureSizeMode = fmPictureSizeModeClip
End Sub
Private Sub OptionButton2_Click()
Image1.PictureSizeMode = fmPictureSizeModeStretch
End Sub
Private Sub OptionButton3_Click()
Image1.PictureSizeMode = fmPictureSizeModeZoom
End Sub
Private Sub UserForm_Initialize()
Frame1.Caption = "Preview Selection"
OptionButton1.Value = True
OptionButton1.Caption = "Clip image"
OptionButton2.Caption = "Stretch image"
OptionButton3.Caption = "Zoom image"
CommandButton1.Caption = "Select Entities"
CommandButton2.Caption = "Close"
End Sub
|
Copyright © Сайт поддержки пользователей САПР