项目中有个功能菜单一开始是这样的:

有线条和灰色边框,产品部觉得影响整体风格,要求去掉。所以找资料,参考了
这篇文章去掉了边框,效果如下:
问题来了:
边框虽然是没了,但是上下级菜单的区域没有重叠区,导致选择语言很难操作。
结合代码对比了之前的效果,发现是去掉边框的时候把非客户区去掉了,菜单的尺寸减小了,导致菜单无法重叠在一起。
所以问问大神,为了解决这个问题,有2个思路,看哪个实现更简单:
1.让下级菜单弹出的时候往上级菜单靠紧一点
2.
非客户区不删除,采用自绘
非客户区来代替,也就是代码这里该如何修改:
case WM_PRINT: // 此处阻止非客户区地绘制
return CallWindowProc( oldWndProc, hWnd, WM_PRINTCLIENT, wParam, lParam);
//这里如何不return,而转向自绘非客户区