小弟最近看了很多关于C#做的OFFICE XP风格的菜单,但是都发现使用了OwnerDraw = true,然后自己相应事件MeasureItem和DrawItem。前者测量菜单的大小,后者实际绘制菜单。
但是这样的窗体普遍都有一个问题,谈出菜单的边框就消除不了。始终在显示的时候,留下类似于窗体边框。
后来,小弟又在vcbase里面看到有人用Hook来抓取菜单的hdc,然后重新绘制菜单,结果实现OFFICE XP的功能。同时,作者又介绍说是HookMenu提供的办法,于是小弟又下载了VB版本的HookMenu,结果代码看不懂。
难道真的C#就没有办法利用MeasureItem和DrawItem实现OFFICE XP的窗体吗?愿各位C#高人指教