为什么MDI的某一个菜单选择了 显示窗口列表的选项
那么每次添加子窗口的时候 系统就会再该项菜单自动添加窗口列表可是为什么这写菜单就重画不了呢
我重画代码是写在子窗体添加代码的后面的虽然重画的返回值是成功的好像系统会自己恢复其菜单我觉得是系统在我重画之后做了写什么
只是不知道什么不知道谁能告诉我这个问题怎么解决呢
给写资料也可以阿透露下经验嘛 教教晚辈

解决方案 »

  1.   

    回调函数截获菜单消息
    重画菜单
    GetMenuItemInfo
    SetMenuItemInfo
    MF_OWNERDRAW救命哦
      

  2.   


    真的
    超级超级绿豆
    Case WM_INITMENUPOPUP
      Call CallWindowProc(OldWindowProc, hwnd, Msg, wParam, lParam)
      Call OnInitMenuPopup(wParam&, LoWord(lParam&), CBool(HiWord(lParam&)))'这里处理弹出菜单的时候就进行重画属性设置
    Case WM_MEASUREITEM
    Case WM_DRAWITEM
    这个两个进行之后的处理
    人家说MDI的菜单是不太一样的
    普通窗口 也就是一般的窗口就没有问题
    大哥帮忙哦
      

  3.   

    MDI菜单的处理是不大一样,偶前段时间曾经看了一下,但没有研究出个所以然来.理论上应该注意的消息是发给MDI Client窗口的WM_MDISETMENU消息……
      

  4.   

    哈哈哈
    最近几天我大有收获
    今天晚上刚好解决了那个问题 不过还是要谢谢 绿豆 哦 超级绿豆 呵呵
    可是还存在一个问题
    就是当我重画系统菜单成功
    但是我必须获得WM_MEASUREITEM消息来修改大小
    但是几个不能获得WM_MEASUREITEM消息 
    那几个项
    刚好是系统自己在旁边加了图标的那几个 
    不知道为什么
    好像是系统先做处理吃掉了那个消息
    这么解决呢
      

  5.   

    上面的问题出现在2000和xp
    98 me都没有问题