.Net的Windows API包装器?

Windows API


所以我知道WinForms稍微触及了Windows API,但坦率地说它太可怕了。 特别是分层窗户和闪烁。 所以我想知道是否有人为Windows API编写了部分或完整的包装器。我对分层窗口方面特别感兴趣,但实际上API的任何部分都是一个好的起点。

更新 :我在这里找到了Windows API代码包: http : //code.msdn.microsoft.com/WindowsAPICodePack但似乎它没有包装分层Windows? 我假设这是正确的吗?

原生API(Windows)


我听过一些关于Native API的内容,但我不太清楚它是什么用的? 它提供了哪些function? 调查是不是一个好主意?

摘要(简而言之问题)


  1. 有谁知道Windows API的现有(部分或完整)包装器?
    • 如果答案是肯定的问题,那么在哪里可以自己学习它,并且可能自己编写?
  2. Native API的解释? 它有什么作用? 我可以用它来改善应用程序吗? 我甚至可以使用它吗?

任何这些的答案非常感谢:)谢谢

LayeredWindows在WinForms中实际上比windows更好。 本机Windows控件甚至没有WinForms类似物的alpha通道支持,因此本机窗口闪烁,并且需要大量的子类来覆盖绘画以使用alpha兼容的例程。

你最好去WPF。 Windows团队根本没有对本机控件进行良好处理,如果启用了航空玻璃,就可以删除对样式(WS_EX_COMPOSITED)的支持,考虑到窗口控制绘画的方式,有效地使任何应用程序都无法绘制如果它使用子窗口作为控件,则无闪烁。

WPF“绘制”窗口控件,但不使用离散(本机)子窗口来表示单个控件。 这使它可以控制窗口表面的呈现时间和方式。

你可以从PInvoke.NET开始。

Windows API非常庞大。 里面有很多东西。 Windows窗体是其中一部分的包装器。 WPF是其中一部分的包装器。 基类库的一部分(例如System.IO。*)是其中一部分的包装。 Code Pack是一个包装器,专门用于Vista和Windows 7中的新function,而不是Windows Forms或WPF中的新function。

你看过WPF了吗? 结合特定API函数的P / Invoke,它可能会带您走向您想要的位置。