none
自绘菜单,在WinCE5.0下可以,但WinCE6.0下不行!!!! RRS feed

  • 问题

  • 发现对于自绘菜单,在WinCE5.0下每个菜单节点都会发出一个WM_DRAWITEM消息,但是在WinCE6.0下,整个菜单只发一个WM_DRAWITEM消息,导致我的代码不可用,不知道那位碰到没有,奇怪了.
    2011年8月18日 6:21

答案

  • 您能简单的分享一下解决问题的思路么?

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    其实很简单啦,就是多看MSDN,还有就是多试.

    我原来是类似如下代码实现的:

        CMenu::LoadMenu(nIDResource);

        GetMenuItemInfo(p_uiIndex, &sttMenuInfo, TRUE)

        sttMenuInfo.fType |= MF_OWNERDRAW;
        ::SetMenuItemInfo(p_pMenu->m_hMenu, p_uiIndex, TRUE, &sttMenuInfo);
    用这种方法给每个菜单项加上MF_OWNERDRAW属性,这个在WinCE5.0/WinXP系统下都可以,可惜在WinCE6.0下就不行了, 在WinCE6.0下只有对分割条有效果.

    其实仔细看MSDN的话,上面有大概提到,但不是很清楚.

     

     

    2011年8月23日 5:21

全部回复

  • 您好,

    首先,请检查一下源代码,确定不是因为意外修改导致的。其次,您的自绘菜单是自己写的控件,还是继承MFC控件修改的。希望能提供点代码,以便我们分析问题。

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年8月19日 7:30
    版主
  • 您好,

    首先,请检查一下源代码,确定不是因为意外修改导致的。其次,您的自绘菜单是自己写的控件,还是继承MFC控件修改的。希望能提供点代码,以便我们分析问题。

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    谢谢回复, 我已经用别的方法解决了这个问题了.

    2011年8月22日 11:11
  • 您能简单的分享一下解决问题的思路么?

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年8月23日 3:12
    版主
  • 您能简单的分享一下解决问题的思路么?

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    其实很简单啦,就是多看MSDN,还有就是多试.

    我原来是类似如下代码实现的:

        CMenu::LoadMenu(nIDResource);

        GetMenuItemInfo(p_uiIndex, &sttMenuInfo, TRUE)

        sttMenuInfo.fType |= MF_OWNERDRAW;
        ::SetMenuItemInfo(p_pMenu->m_hMenu, p_uiIndex, TRUE, &sttMenuInfo);
    用这种方法给每个菜单项加上MF_OWNERDRAW属性,这个在WinCE5.0/WinXP系统下都可以,可惜在WinCE6.0下就不行了, 在WinCE6.0下只有对分割条有效果.

    其实仔细看MSDN的话,上面有大概提到,但不是很清楚.

     

     

    2011年8月23日 5:21