所以我知道WinForms稍微触及了Windows API,但坦率地说它太可怕了。特别是分层的窗户和闪烁。所以我想知道是否有人为Windows API编写了部分或完整的包装器。我对分层窗口方面特别感兴趣,但实际上API的任何部分都是一个很好的起点。
更新:我在这里找到了Windows API代码包:http://code.msdn.microsoft.com/WindowsAPICodePack但它似乎没有包装分层Windows?我假设这是正确的吗?
我听过一些关于Native API的内容,但我不太确定它是什么用的?它提供了哪些功能?调查是否是一个好主意?
非常感谢任何人的回答:)谢谢
答案 0 :(得分:4)
您可以从PInvoke.NET开始。
答案 1 :(得分:2)
Windows API非常庞大。里面有很多东西。 Windows窗体是其中一部分的包装器。 WPF是其中一部分的包装器。基类库的一部分(例如System.IO。*)是其中一部分的包装。 Code Pack是一个包装器,专门用于Vista和Windows 7中的新功能,而不是Windows Forms或WPF中的新功能。
你看过WPF吗?结合特定API函数的P / Invoke,它可能需要您走很远的路。
答案 2 :(得分:2)
LayeredWindows在WinForms中实际上比windows更好。 本机Windows控件甚至没有WinForms类似物的alpha通道支持,因此本机窗口闪烁,并且需要大量子类来覆盖绘画以使用alpha兼容的例程。
你最好去WPF。如果启用了航空玻璃,那么Windows团队根本没有对原始控件进行良好处理,甚至取消对样式的支持(WS_EX_COMPOSITED),考虑到窗口控制绘画的方式,有效地使任何应用程序都无法绘制如果它使用子窗口作为控件,则无闪烁。
WPF“绘制”窗口控件,但不使用离散(本机)子窗口来表示单个控件。这使它可以控制窗口表面的呈现时间和方式。