我的应用程序在 C# 3.5 Winforms 中,但无论如何这很可能需要 P/Invoke,因此它与 .NET 并没有那么严格的联系。
我通过ContextMenu
和MenuItem
类创建了所有者绘制的菜单项。一切正常,但对于某些项目,我想创建一个小动画(显示有一个进程正在运行,与项目相关联)。不幸的是,上面提到的两个类没有提供Invalidate()
方法或类似的东西。
到目前为止,我最好的想法是WindowFromDC()
在第一个 OnDraw 上 P/Invoke,保存结果句柄,然后定期调用InvalidateRect()
句柄,直到菜单关闭。
不过,这似乎有点骇人听闻,我还没有尝试过,想知道是否有更优雅的方法。