我的應用程序使用C#3.5,Winforms,但是這很可能需要P/Invoke,所以它不是嚴格依賴於.NET。如何在自繪菜單項中提供動畫?
我已經通過ContextMenu
和MenuItem
類創建了自繪菜單項。一切運作良好,但對於一些項目,我想創建一個小動畫(顯示有一個流程正在運行,與該項目相關聯)。不幸的是,上述兩類不提供Invalidate()
方法或類似的東西。
到目前爲止,我的最好主意是在第一個OnDraw上P/Invoke WindowFromDC()
,保存生成的句柄,然後定期在句柄上調用InvalidateRect()
,直到菜單關閉。
雖然這看起來還挺有趣,但我還沒有嘗試過,並想知道是否有更優雅的方式。
是的,但他們在完全自主提取時遇到問題。至少這就是人們在網上說的話,我也無法把它畫出來。在我的情況下,我正在做一些非常沉重的自定義 - 兩行不同字體的文本;大的最好動畫圖標;也許別的東西。菜單項甚至不是全部相同的高度(有些只有一行文本)。 – 2011-01-27 09:51:09