花了一天时间,终于把菜单hook完了,贴个图:
记录下具体的实现:
1.得到菜单句柄,给菜单窗口发送MN_GETHMENU,这个消息就可以获取菜单句柄
2.处理消息
WM_NCPAINT
WM_PRINT
WM_PRINTCLIENT
WM_PAINT
WM_NCCALCSIZE
3.系统属性:
{COLOR_3DSHADOW, COLOR_3DSHADOW },//为非客户区定制颜色
{COLOR_MENU, COLOR_MENU },//有效,为菜单背景色
{COLOR_HIGHLIGHT , COLOR_HIGHLIGHT },//有效,为菜单选中项颜色
{COLOR_INACTIVECAPTION , COLOR_INACTIVECAPTION },//有效,设定灰掉菜单和横划线的颜色
{COLOR_WINDOWFRAME , COLOR_WINDOWFRAME },//有效,设定可用菜单颜色(只有部分可见)
{COLOR_3DHILIGHT , COLOR_3DHILIGHT },//有效,设定灰掉菜单和横划线的颜色(如替换为纯色,颜色会模糊)
{COLOR_3DHIGHLIGHT , COLOR_3DHIGHLIGHT },//有效,设定灰掉菜单和横划线的颜色(如替换为纯色,颜色会模糊)
{COLOR_WINDOWFRAME , COLOR_WINDOWFRAME },//有效,设定可用菜单颜色(只有部分可见)
{ 0xf1f1f1, COLOR_MENU},