Windows API Wrapper для.Net?
Windows API
Так что я знаю, что WinForms немного затрагивает Windows API, но, честно говоря, это ужасно. ОСОБЕННО с многослойными окнами и мерцанием. Поэтому мне было интересно, написал ли кто-нибудь частичные или полные обертки для Windows API. Меня особенно интересует аспект Layered Window, но на самом деле любая часть API - хорошее место для начала.
Обновление: я нашел пакет кода Windows API здесь: http://code.msdn.microsoft.com/WindowsAPICodePack но кажется, что он не переносит многослойную Windows? Я прав, предполагая это?
Собственный API (Windows)
Я немного слышал о Native API, но я не совсем уверен, для чего он нужен? какие функции он предоставляет? было бы хорошей идеей разобраться?
Резюме (вопросы в двух словах)
- Кто-нибудь знает о существующей (частичной или полной) оболочке Windows API?
- Если на первый вопрос нет ответа, где был бы хороший ресурс, чтобы узнать об этом самому и, возможно, написать свой собственный?
- Объяснение родного API? Что оно делает? Могу ли я использовать его для улучшения приложений? Могу ли я вообще его использовать?
Ответ на любой из них высоко ценится:) спасибо
3 ответа
LayeredWindows на самом деле работает лучше в WinForms, чем Windows. Родные элементы управления Windows даже не поддерживают альфа-канал аналогов WinForms, поэтому собственные окна мерцают и требуют огромного количества подклассов для переопределения рисования для использования альфа-совместимых подпрограмм.
Тебе лучше пойти в WPF. Команда Windows совсем не обработала собственный элемент управления и зашла так далеко, что убрала поддержку стиля (WS_EX_COMPOSITED), если включено аэростекло, что, учитывая то, как окна управляют рисованием, фактически делает невозможным рисование для любого приложения. без мерцания, если он использует дочерние окна в качестве элементов управления.
WPF "рисует" элементы управления окнами, но не использует дискретные (собственные) дочерние окна для представления отдельных элементов управления. Это дает ему контроль над тем, когда и как визуализируется его поверхность окна.
Windows API огромен. В нем много тонны. Windows Forms - это оболочка его частей. WPF - это оболочка его частей. Части библиотек базовых классов (например, System.IO.*) Являются оболочками его частей. Code Pack - это оболочка, в частности, вещей, которые были новыми в Vista и Windows 7, а не в Windows Forms или WPF.
Вы смотрели в WPF? В сочетании с P/Invoke определенных функций API, вы можете продвинуться далеко вперед, туда, где вы хотите быть.