Windows Mobile 6.1 - .NET CF StatusBar控件 - 嵌入图标

时间:2010-10-04 12:37:07

标签: c# .net windows-mobile compact-framework mobile

是否可以在.NET CF 3.5上的StatusBar控件上嵌入一个图标?

1 个答案:

答案 0 :(得分:3)

Compact Framework StatusBar控件非常非常基础,功能有限。它不支持添加图像甚至多个面板。这部分是由于CF团队(IMO)的懒惰,部分是由于操作系统的限制。

OS状态栏通用控件最多支持255个面板。 CF团队不允许不止一个。这是纯粹的懒惰,但至少你可以通过继承它并发送一个SB_SETPARTS消息来解决它。它需要相当数量的P / Invoking来使它全部正常工作,所以除非你真的需要它,否则我会避免它。

然而,本机控件甚至不支持图像。您可以将其子类化,然后自己处理WM_PAINT并绘制图标。我没试过,但这似乎是一种合理的方法。这也需要对所有GDI内容进行一些丑陋的原生调用。这有可能导致内存泄漏或访问冲突,所以除非你真的需要它并且对旧的Win32绘画感到满意,否则在决定这条路线之前,你可能会尝试提出另一种解决方案。