Добавить
Уведомления

# 52 Уроки C# – WinAPI + свой контрол (2 в 1) DllImport маршаллинг

00:00 Введение в Windows API • Объяснение, что такое Windows API и как оно используется. • Пример использования API для создания круглой кнопки, которую Windows Forms не поддерживает. 00:44 Что такое API • API — это набор базовых функций и интерфейсов, предоставляемых разработчиком. • Windows API предоставляет прямой доступ к функциям операционной системы Windows. 01:39 Работа с Windows API в C# • Использование атрибута `DllImport` для импорта функций Windows API. • Объяснение маршаллинга параметров и искажения имён. 03:52 Пример импорта функции MessageBox • Пример импорта функции `MessageBox` из библиотеки `User32.dll`. • Настройка маршаллинга для Unicode-текста. 05:11 Проверка работы функции • Запуск программы и проверка работы функции MessageBox. • Устранение ошибок, связанных со статическими методами. 06:08 Создание собственных библиотек • Создание собственных библиотек DLL и обращение к их методам. • Поиск библиотек в переменных средах без указания полного пути. 07:40 Скругление кнопок • Поиск решения для скругления кнопок в интернете. • Обзор различных подходов, включая использование `RoundedRectangle` и `RoundedCorners`. 08:44 Использование Windows API для скругления • Анализ кода, использующего Windows API для скругления углов кнопок. • Сравнение с предыдущим примером импорта функции MessageBox. 09:10 Создание скруглённой кнопки • Использование студии для создания скруглённой кнопки на Windows Forms в C#. • Проблема: размер скруглённого региона определяется от всей формы, а не от кнопки. • Решение: копирование и вставка кода для решения проблемы. 10:09 Работа с Entry Point • Объяснение использования Entry Point для задания импортируемой функции. • Изменение имени функции на «RoundButton». • Удаление лишних комментариев для упрощения кода. 11:08 Настройка метода RoundButton • Переименование метода RoundRegion в RoundButton. • Настройка параметров метода: Left, Right, Top, Bottom, Width, Height. • Удаление ненужных элементов кода. 12:07 Реализация события Paint • Копирование кода события Paint для кнопки. • Изменение названия события на ButtonPaint. • Запуск программы для проверки результата. 12:42 Улучшение кнопки • Добавление цвета «Active» и увеличение размера кнопки. • Центрирование кнопки на форме. 14:15 Создание собственного контроля • Добавление класса RoundButton в решение. • Наследование от Button и добавление необходимых методов. • Исправление ошибок при импорте методов. 17:02 Переписывание события Paint • Переписывание события Paint в классе RoundButton. • Использование Override для перехвата события. • Проверка работы контроля после исправления ошибок. 18:34 Рекомендации по использованию • Предупреждение о неэффективности постоянного использования события Paint. • Рекомендация использовать отдельные методы для преобразования свойств кнопки. • Подчёркивание важности правильного использования методов. 20:07 Настройка кнопки • Увеличение размера кнопки для большей заметности. • Создание плоской кнопки с цветом, аналогичным стандартной. • Настройка длины и высоты кнопки для лучшего отображения. 21:06 Использование WinAPI • Объяснение работы с WinAPI для открытия блокнота. • Пример использования WinAPI для создания отчётов без сохранения данных. • Подчёркивание преимуществ использования WinAPI перед костылями. 23:02 Переменные среды и маршаллинг • Инструкция по доступу к переменным среды через контекстное меню компьютера. • Объяснение маршаллинга как процесса преобразования данных между языками или платформами. • Упоминание о важности протектора и виртуального члена в контексте событий. 24:01 Заключение • Подведение итогов по настройке кнопки. • Призыв ставить лайки и подписываться на канал. • Прощание с аудиторией.

Иконка канала Ленинский Букварь
233 подписчика
12+
4 просмотра
месяц назад
12+
4 просмотра
месяц назад

00:00 Введение в Windows API • Объяснение, что такое Windows API и как оно используется. • Пример использования API для создания круглой кнопки, которую Windows Forms не поддерживает. 00:44 Что такое API • API — это набор базовых функций и интерфейсов, предоставляемых разработчиком. • Windows API предоставляет прямой доступ к функциям операционной системы Windows. 01:39 Работа с Windows API в C# • Использование атрибута `DllImport` для импорта функций Windows API. • Объяснение маршаллинга параметров и искажения имён. 03:52 Пример импорта функции MessageBox • Пример импорта функции `MessageBox` из библиотеки `User32.dll`. • Настройка маршаллинга для Unicode-текста. 05:11 Проверка работы функции • Запуск программы и проверка работы функции MessageBox. • Устранение ошибок, связанных со статическими методами. 06:08 Создание собственных библиотек • Создание собственных библиотек DLL и обращение к их методам. • Поиск библиотек в переменных средах без указания полного пути. 07:40 Скругление кнопок • Поиск решения для скругления кнопок в интернете. • Обзор различных подходов, включая использование `RoundedRectangle` и `RoundedCorners`. 08:44 Использование Windows API для скругления • Анализ кода, использующего Windows API для скругления углов кнопок. • Сравнение с предыдущим примером импорта функции MessageBox. 09:10 Создание скруглённой кнопки • Использование студии для создания скруглённой кнопки на Windows Forms в C#. • Проблема: размер скруглённого региона определяется от всей формы, а не от кнопки. • Решение: копирование и вставка кода для решения проблемы. 10:09 Работа с Entry Point • Объяснение использования Entry Point для задания импортируемой функции. • Изменение имени функции на «RoundButton». • Удаление лишних комментариев для упрощения кода. 11:08 Настройка метода RoundButton • Переименование метода RoundRegion в RoundButton. • Настройка параметров метода: Left, Right, Top, Bottom, Width, Height. • Удаление ненужных элементов кода. 12:07 Реализация события Paint • Копирование кода события Paint для кнопки. • Изменение названия события на ButtonPaint. • Запуск программы для проверки результата. 12:42 Улучшение кнопки • Добавление цвета «Active» и увеличение размера кнопки. • Центрирование кнопки на форме. 14:15 Создание собственного контроля • Добавление класса RoundButton в решение. • Наследование от Button и добавление необходимых методов. • Исправление ошибок при импорте методов. 17:02 Переписывание события Paint • Переписывание события Paint в классе RoundButton. • Использование Override для перехвата события. • Проверка работы контроля после исправления ошибок. 18:34 Рекомендации по использованию • Предупреждение о неэффективности постоянного использования события Paint. • Рекомендация использовать отдельные методы для преобразования свойств кнопки. • Подчёркивание важности правильного использования методов. 20:07 Настройка кнопки • Увеличение размера кнопки для большей заметности. • Создание плоской кнопки с цветом, аналогичным стандартной. • Настройка длины и высоты кнопки для лучшего отображения. 21:06 Использование WinAPI • Объяснение работы с WinAPI для открытия блокнота. • Пример использования WinAPI для создания отчётов без сохранения данных. • Подчёркивание преимуществ использования WinAPI перед костылями. 23:02 Переменные среды и маршаллинг • Инструкция по доступу к переменным среды через контекстное меню компьютера. • Объяснение маршаллинга как процесса преобразования данных между языками или платформами. • Упоминание о важности протектора и виртуального члена в контексте событий. 24:01 Заключение • Подведение итогов по настройке кнопки. • Призыв ставить лайки и подписываться на канал. • Прощание с аудиторией.

, чтобы оставлять комментарии