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, но я не совсем уверен, для чего он нужен? какие функции он предоставляет? было бы хорошей идеей разобраться?

Резюме (вопросы в двух словах)


  1. Кто-нибудь знает о существующей (частичной или полной) оболочке Windows API?
    • Если на первый вопрос нет ответа, где был бы хороший ресурс, чтобы узнать об этом самому и, возможно, написать свой собственный?
  2. Объяснение родного API? Что оно делает? Могу ли я использовать его для улучшения приложений? Могу ли я вообще его использовать?

Ответ на любой из них высоко ценится:) спасибо

3 ответа

Решение

LayeredWindows на самом деле работает лучше в WinForms, чем Windows. Родные элементы управления Windows даже не поддерживают альфа-канал аналогов WinForms, поэтому собственные окна мерцают и требуют огромного количества подклассов для переопределения рисования для использования альфа-совместимых подпрограмм.

Тебе лучше пойти в WPF. Команда Windows совсем не обработала собственный элемент управления и зашла так далеко, что убрала поддержку стиля (WS_EX_COMPOSITED), если включено аэростекло, что, учитывая то, как окна управляют рисованием, фактически делает невозможным рисование для любого приложения. без мерцания, если он использует дочерние окна в качестве элементов управления.

WPF "рисует" элементы управления окнами, но не использует дискретные (собственные) дочерние окна для представления отдельных элементов управления. Это дает ему контроль над тем, когда и как визуализируется его поверхность окна.

Вы можете начать с PInvoke.NET.

Windows API огромен. В нем много тонны. Windows Forms - это оболочка его частей. WPF - это оболочка его частей. Части библиотек базовых классов (например, System.IO.*) Являются оболочками его частей. Code Pack - это оболочка, в частности, вещей, которые были новыми в Vista и Windows 7, а не в Windows Forms или WPF.

Вы смотрели в WPF? В сочетании с P/Invoke определенных функций API, вы можете продвинуться далеко вперед, туда, где вы хотите быть.

Другие вопросы по тегам