QQ的界面风格一直是广大网友模仿的对象,其界面技术也是广大UI程序员揣摩、研究的对象,今天我们就来模仿QQ2009的圆角菜单,并且添加透明功能。
很多做过自绘菜单的人都知道,在MFC中,虽然CMenu不是派生自CWnd,但是他实际上也是一个窗口,微软之所以不把菜单归纳于窗口,我猜想主要是菜单不需要用到窗口基本的方法和属性。既然是窗口,要实现完美的菜单,如果能够获取到窗口句柄,那么我们就能够子类化处理自己想要的消息。要获取菜单窗口句柄,最好是采用HOOK技术,本文就采用SetWindowsHookEx(函数详解请查阅MSDN)来实现圆角透明菜单效果。首先看看实现效果,然后我们再一步一步来实现。先看看效果图:

第一步:安装钩子函数
第二步 子类化菜单窗口
本文介绍如何使用HOOK技术和子类化方法在MFC中实现类似QQ2009的圆角透明菜单效果。通过安装钩子函数拦截菜单窗口消息,并通过子类化菜单窗口来实现定制化的菜单样式。

281

被折叠的 条评论
为什么被折叠?



