Многоугольник с использованием Api функций - VB

  1. Как нарисовать многоугольник с помощью мышки с использованием API Функций ???


textual

Код к задаче: «Многоугольник с использованием Api функций - VB»

Option Explicit
Private Type POINTAPI
        X As Long
        Y As Long
End Type
Private Declare Function PolyBezier Lib "gdi32.dll" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long
Private Declare Function PolyBezierTo Lib "gdi32.dll" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As Any) As Long
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function PolyPolygon Lib "gdi32.dll" (ByVal hdc As Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As Long
Private Sub Command1_Click()
 Stroim
End Sub
Private Sub Stroim()
    Dim pts(0 To 6) As POINTAPI
    Dim numpoints(0 To 1) As Long
 
    Me.ForeColor = vbBlue
    'set the points belonging to the rectangle
    pts(0).X = 20: pts(0).Y = 10
    pts(1).X = 200: pts(1).Y = 10
    pts(2).X = 200: pts(2).Y = 190
    pts(3).X = 20: pts(3).Y = 190
    numpoints(0) = 4
    'set the points belonging to the triangle
    pts(4).X = 100: pts(4).Y = 0
    pts(5).X = 50: pts(5).Y = 100
    pts(6).X = 150: pts(6).Y = 100
    numpoints(1) = 3
    'draw the polygons
   PolyPolygon Me.hdc, pts(0), numpoints(0), 2
End Sub

СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 4.400 из 5



Похожие ответы
  1. Дана матрица размером MxN . Найти количество его столбцов, элементы которых упорядочены по убыванию.

  1. Подскажите как правильно запустит бат файл? так не получается. хотелось бы не указывать весь путь так как этот файл может быть и запущен с другого пк.

  1. Привет! Я как-то довольно давно заинтересовался темой цифровых подписей, какова их защита, как они устроены изнутри, как с ними работать из-под CryptoAPI. По мере изучения возникало много подводных камней. Наконец, я готов рассказать и вам на доступном языке о принципах шифрования и подписания, практике и готовой реализации проверки подписей. Затронуто много косвенных тем, так что статья весьма объёмна. Запаситесь чипсами и пивом . А в перерывах, можете сразу пощупать 3-ю часть статьи, где вас ждёт готовая программа, а также несколько хорошо прокомментированных исходников, в т.ч. для пакетной проверки всех PE-файлов в системе с отчётом в формате CSV. Большинство примеров кода представлено на языке VB6, просто потому что на C++ примеров очень много в сети, а на этом языке подобных комплексных реализаций я не видел вообще, да и этот язык я лучше всего знаю. Итак, статья состоит из 3 частей:Часть 1. ТеорияЧасть 2. Описание реализацииЧасть 3. Набор программСодержание:Часть 1. Кусочек теории.1.1. Что такое электронная цифровая подпись (ЭЦП) и зачем она нужна? 1.2. Надёжность ЭЦП и эксплуатация вредоносным ПО.1.2.1. Человеческий фактор и приватные ключи. 1.2.2. Уязвимости в структуре ЭЦП. 1.2.3. Стойкость алгоритма хеша.1.3. Что означает, легитимна ли подпись? 1.4. Терминология, алгоритм подписания и проверки.1.4.1. Что такое Authenticode (Code signing). 1.4.2. Что такое хеш. 1.4.3. Что такое выборка (digest). 1.4.4. Что такое приватный и публичный ключи, симметричное и асимметричное шифрование. 1.4.5. Что такое сертификат, центр сертификации и цепочка доверия. 1.4.6. Форматы файлов сертификатов и ключей для Authenticode подписи и их преобразование.а) Виды форматов. б) Преобразование форматов.1.4.7. Что такое подпись и подписание. 1.4.8. Что такое отпечаток (Thumbprint / Fingerprint). 1.4.9. Как проверяется подпись. 1.4.10. Чем отличаются понятия «алгоритм подписи», «алгоритм хеша подписи», «алгоритм хеша выборки», «алгоритм хеша отпечатка».1.5. Само-подписанный (self-signed) сертификат. 1.6. Двойная (вторичная) подпись. 1.7. Способы подписания 1.8. Перечисление сертификатов в хранилище 1.9. Удаление подписи. 1.10. Покупка сертификата.Часть 2. Описание реализации программы проверки подписей2.1. Подготовка к проверке 2.2. Запуск процедуры проверки и обработка результатов 2.3. Очистка ресурсов. 2.4. Извлечение сертификатов и содержащейся в них информации 2.5. Извлечение атрибутов и крос-подписейЧасть 3. Программа проверки Authenticode ЭЦП- Назначение - Совместимость / Требования - Примеры использования / Флаги и дополнительная информацияЗаключение Приложения и исходные коды Дополнительная литература

  1. Добрый вечер! Товарищи, очень нужна помощь в понимании процесса выгрузки данных из БД Oracle в Excel через Recordset. Поясню, с чего всё началось На работе необходимо выгружать данные, для этого использую самую простую конструкцию, через Recordset.GetRows, записываю данные в массив и уже от туда передаю данные на Лист. Используя данную конструкцию - был наивно уверен, что лучше ничего нет Но недавно увидел, как отрабатывается скрипт, где используют Словарь вместо массива и много разных опций для Recordset. Скрипт отработался в раз 5 быстрее. А если скрипт достаточно сложный, то разница очень существенная (в 10-30 раз) 5 минут против часа или двух часов. Вот и возник вопрос - из за чего такой прирост скорости? По сути то - один и тот же метод, один драйвер, один Excel, одна база, один скрипт)) Кто нибудь занимался данным вопросом? Может кто то знает секрет такого прироста скорости?

  1. Добрый день. Есть тестовое приложение, оно содержит один элемент меню, на котором висит shortcut(Ctrl+L) и командную кнопку. Если я нажимаю комбинацию клавиш Ctrl+L с клавиатуры, то появляется окно сообщения, что нажат пункт меню. Как сделать так, чтобы при нажатии на командную кнопку эмулировалось нажатие Ctrl+L для меню. Эту задачу удается решить с помощью keybd_event, но необходимо в дальнейшем отправлять комбинацию в функцию окна, использую хэндл окна. Соответственно keybd_event по этой причине не подходит, как не подходит и отправка сообщения wm_command. По идее, должен работать вариант с отправкой сообщений wm_keydown для каждой клавиши. Например: PostMessage хэндл окна, номер сообщения, vkkeycode(vk_control), lParam(содержит repeatcount и scancode) PostMessage хэндл окна, номер сообщения, vkkeycode(vk_L), lParam(содержит repeatcount и scancode) Но при этом ноль реакции. Через spy++ смотрел сообщения клавиатуры. При физическом нажатии так же генерируются два keydown-а, как и при эмуляции через postmessage. Содержимое сообщений идентичны. Но, в обоих случаях так же появляется сообщение wm_char, они отличаются по содержимому wParam, lParam. wm_char я не отправляю, оно генерируется, как я понимаю defwindowproc. Буду признателен и благодарен за решение или направление в нужную сторону, т.к. ситуация тупиковая, на данный момент.

  1. Это продолжение. См. также другие части этой статьи:Часть 1. Кусочек теории.Часть 3. Программа проверки Authenticode ЭЦПЧасть 2. Описание реализации программы проверки подписейСодержание: 2.1. Подготовка к проверке 2.2. Запуск процедуры проверки и обработка результатов 2.3. Очистка ресурсов. 2.4. Извлечение сертификатов и содержащейся в них информации 2.5. Извлечение атрибутов и крос-подписей

  1. Должна быть память оперативки в Мб

  1. После нажатия на форме появляется время работы компьютера

  1. Должно работать после нажатия command)Добавлено через 5 часов 49 минут Неужели никто не может этого в VB?(