用于扩展NETCF MainMenu以支持背景色属性的代码
时间:2020-03-06 15:03:15 来源:igfitidea点击:
我已经在Compact Framework的MainMenu控件上搜索了更改背景色的解决方案,而我发现的唯一答案是我们需要创建一个自定义控件。有人为此提供示例代码吗?
解决方案
我做了一些类似的事情,我想处理WM_EXITMENULOOP消息,该消息在.NETCF中不能作为事件使用。
解决方案是"继承" Main Menu,这是一个古老的MFC技巧,我们可以在其中替换自己的WndProc函数,处理所有Windows消息(在我的情况下为WM_EXITMENULOOP),并为其他所有调用WndProc基类。
Alex Yakhnin的博客上提供了一些有关如何对控件进行子类化的示例代码:
在.NETCF中将窗口子类化的示例
在情况下,我们实际上是将MainMenu所在的Form子类化,而我认为WM_DRAWITEM将是我们要自己处理的windows消息。
我没有尝试自己更改背景颜色,因此不能完全确定这是否可行,但是子类化将是我的出发点。
不久前,我尝试做类似的事情,发现我们必须编写自己的菜单。本质上是从头开始。我之所以放弃,是因为我从事的项目负担不起这笔费用。我还发现OpenNETCF有一个很棒的菜单控件。我不知道它是否包含在他们的免费软件中,但可能值得研究。