把菜单又搞坏了

要是想写类似3DMax那样的菜单,真不容易,我很欣赏它菜单项一分为二的做法,即可以选择常用命令,又可以选择上下文对话框,

如图中的【移动】命令。还有比较好的就是菜单类别分组,对于一个编辑软件来说,如果上下文的内容变化较大,

这样确实很方便,就不必在长长的上下文菜单中去费力的找了。

把菜单又搞坏了

 

完全自绘代码量较大(不从CMenu继承而来),有点不易。

上次玩DirectX,不知道怎么搞的,键盘只能输入字母了,又不想重启,结果聊天说了几句E文,被MM臭骂 L,这次菜单又搞成这样了。

再者,有些自绘在XP下还挺不错,在Vista下就不堪入目了,而且Vista下使用GDI高级绘图模式时的变换也跟XP有点不一样。

Windows图形编程》中的【ColorSapce】示例程序在两者下显示也不相同(可能我没完全搞懂)

把菜单又搞坏了

MFC向导生成的SDI程序,菜单项前面是不会绘制图标的。但与工具栏对应的命令项却提供图标显示。

目前学习别人写的菜单代码中,都是通过安装Hook的方法实现。

这种方式下,解决的问题主要有下面几个:

1:是菜单项与工具栏图标数据的存放——二者共享图像数据,当然这主是程序结构设计上面的事了。

2:管理拥有菜单显示的窗口

3:菜单的自绘——图标、高亮显示、其它特效

4:菜单命令项快捷键处理

 

在《想做个换肤窗口》一文中,我展示了SDI程序的非客户区,在那里菜单也是属于非客区。

但是通过Spy++观察Office 2003Windows资源管理器等,将会发现这些菜单栏都是独立的窗口,

我用自绘的菜单类做了Demo测试后,得出结论,我需要独立的窗口放置菜单。

你可能感兴趣的:(菜单)