| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему не работает метод SetMapMode при черчении на UserForm?

Почему не работает метод SetMapMode при черчении на UserForm?

Ответ
Поиск в этой теме
Непрочитано 13.02.2023, 13:49 #1
Почему не работает метод SetMapMode при черчении на UserForm?
МишаИнженер
 
Регистрация: 14.12.2008
Сообщений: 1,079

Посмотрите файл EXCEL для черчения на форме UserForm в VBA Excel.
Использую код VBA для смены режима черчения:
Код:
[Выделить все]
Private Sub CommandButton1_Click()
   I = I + 1
   SetMapMode hdc, I 'сменим режим черчения на следующий согласно таблице 4
   J = GetMapMode(hdc) 'получим текущий режим черчения
   MsgBox "Текущий режим черчения GDIMap= " & J
   DrawLine 100, 100
   DrawCircle 60, 60, 100, 100
   DrawRectangle 160, 60, 260, 100
End Sub
Объясните пожалуйста, почему не работает метод MoveToEx и все линии чертятся из начальной точки 0,0 находящейся в левом верхнем углу UserForm?
При нажатии на кнопку "Чертить" режим координат окна UserForm должен меняться согласно таблице:
Цитата:
Таблица 4. Возможные значения параметра fnMapMode функции SetMapMode
ЗНАЧЕНИЕ ОПИСАНИЕ
MM_TEXT Логические координаты совпадают с физическими координатами устройства. В качестве единиц измерения используются пиксели. Левый верхний угол экрана имеет координаты (0, 0); ось Х направлена вправо, а ось Y - вниз. Этот режим отображения принят по умолчанию.
MM_HIMETRIC Каждая единица логических координат соответствует 0,01 мм. Левый нижний угол имеет координаты (0, 0). Ось Х направлена вправо. Ось Y направлена вверх.
MM_HIENGLISH Каждая единица логических координат соответствует 0,001 дюйма. Левый нижний угол имеет координаты (0, 0). Ось Х направлена вправо. Ось Y направлена вверх.
MM_LOENGLISH Каждая единица логических координат соответствует 0,01 дюйма. Левый нижний угол имеет координаты (0, 0). Ось Х направлена вправо. Ось Y направлена вверх.
MM_TWIPS Каждая единица логических координат соответствует 1/1440 дюйма. Левый нижний угол имеет координаты (0, 0). Ось Х направлена вправо. Ось Y направлена вверх.
MM_ANISOTROPIC Каждая единица логических координат может соответствовать произвольному количеству точек устройства, которое независимо масштабируется по каждой из осей. Задавать поведение этого режима можно при помощи функций SetWindowExtEx и SetViewportExtEx.
MM_ISOTROPIC Каждая единица логических координат может соответствовать произвольному количеству точек устройства, которое одинаково масштабируется по осям. Задавать поведение этого режима можно при помощи функций SetWindowExtEx и SetViewportExtEx.
Эта таблица взята отсюда: http://igrocoder.ru/tiki-index... ие+объекты

Миниатюры
Нажмите на изображение для увеличения
Название: Черчение не из той точки.png
Просмотров: 22
Размер:	100.5 Кб
ID:	253319  

Вложения
Тип файла: zip Матрицы_GDI.zip (28.5 Кб, 9 просмотров)

Просмотров: 1134
 
Непрочитано 13.02.2023, 14:33
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,049


если что-то работает, но не так как ожидалось - пошагово просматривайте в отладчике значения переменных.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему не работает метод SetMapMode при черчении на UserForm?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает прямоугольный массив в AutoCAD? engngr AutoCAD 10 05.04.2022 00:23
Почему макрос работает по другому в AutoCAD 2016? Минус Программирование 5 05.09.2018 14:09
Почему не работает KINH или что я делаю не правильно? smirnovnn ANSYS 5 12.05.2018 22:21
Почему программа работает неправильно? FSergio Программирование 24 26.08.2011 16:42
Почему не работает видовой экран? n0str0m0 AutoCAD 14 21.07.2011 02:42