如题。
我对菜单类CMenu进行了一部分研究,在DrawItem里面进行自绘。不过自绘也只能改变菜单的里面内容,而且是菜单一项,根本无法改变最底下的矩形。
现在的问题就是改不了矩形。
我的思路是想使用API的区域操作函数 setwindowRgn,失败中。

解决方案 »

  1.   

    WIN32里菜单好象难以定制形状。
      

  2.   

    菜单是从CObject直接下来的,而不是从CWnd过来的。
    koffighter(草大牛) 兄弟的方法也可行,不过我现在追求直接定制菜单形状的方法。
    求救
      

  3.   

    楼主的思路是正确的,继续走下去吧。挂接 WH_CBT 钩子,拦截类名为 #32768 的窗口的创建通知,然后调用 SetWindowRgn() API 进行设置;如果发现 WH_CBT 钩子的时机太靠前的话,也可以考虑挂接 WH_CALLWNDPROC 钩子,拦截类名为 #32768 的窗口的 WM_CREATE 消息。
      

  4.   

    多谢 dandycheung(珠穆朗玛) 大哥,圆角成功了。
    钩子功能果然够强大。