4

我已经搜索了在 Compact Framework 的 MainMenu 控件上更改背景颜色的解决方案,我发现的唯一答案是您需要创建一个自定义控件。有没有人有这方面的示例代码?

4

3 回答 3

2

我做了一些类似的事情,我想处理 WM_EXITMENULOOP 消息,该消息在 .NETCF 中不能作为事件使用。

解决方案是将主菜单“子类化”,这是一个旧的 MFC 技巧,您可以用自己的函数替换 WndProc 函数,处理任何 Windows 消息(在我的情况下为 WM_EXITMENULOOP),并为其他所有内容调用基类 WndProc。

Alex Yakhnin 的博客上提供了一些关于如何子类化控件的示例代码: Example of subclassing a window in .NETCF

在您的情况下,您实际上是对 MainMenu 所在的 Form 进行子类化,我认为 WM_DRAWITEM 将是您想要自己处理的 Windows 消息。我没有尝试自己更改背景颜色,所以不完全确定这会起作用,但子类化将是我开始的地方。

于 2008-11-27T17:29:39.123 回答
0

没有办法做到这一点。
你的权利,你可能需要创建自己的控件。

这是我一直在考虑做的事情,以使应用程序在 Windows CE 和 Windows Mobile 上运行。
当应用程序需要同时使用这两种菜单时,添加菜单的问题在于,菜单会出现在 Windows CE 上的屏幕顶部并覆盖可能存在的所有控件。
从长远来看,只需制作一个新控件就不会那么麻烦了。

于 2008-10-29T14:01:00.843 回答
0

I tried to do something similar a while back and discovered that you have to write your own menu; essentially from scratch. I gave up because the project I was working on couldn't afford the expense. I also discovered that OpenNETCF has a pretty awesome menu control. I don't know if it's included in their free software, but it might be worth looking into.

于 2008-11-28T22:30:17.927 回答