请教各位:
  当menu项太多时,会出现卷滚,现想改变其卷滚的背景颜色,不知在哪个消息里画?请各位高人多多指点。在下感激不尽。

解决方案 »

  1.   

    menu是弹出式的,spy不好抓呀。
      

  2.   

    我试过,那个卷滚窗口好像不在DrawItem之内呀。
      

  3.   

    很少到CSDN,我也遇到了技术问题,溜达了一下,看到你的问题也算有缘,帮你解答一般来说,Item的绘制在DrawItem()里面完全实现,但Menu的背景例外,可以通过屏蔽
    WM_DRAWITEM消息测试验证。但微软提高了一个函数接口SetMenuInfo(),它可以设置一些
    菜单的信息,其中包括背景颜色。你可以粘贴以下代码则可:
    CMenu *pMenu =  GetMenu()->GetSubMenu(4);
    MENUINFO mi;
    mi.fMask = MIM_BACKGROUND;
    static CBrush br(RGB(255,0,0));     
    mi.hbrBack = (HBRUSH)br.m_hObject;
    mi.cbSize = sizeof(MENUINFO);
    SetMenuInfo(pMenu->m_hMenu,&mi);注意:
    1.Brush必须是全局的,为了方便,我定义了一个static类型;
    2.一般你在VC6下调用以上代码,会提示没有定义MENUINFO 这个结构,
    所以你还需要在stdafx.h文件的前面加上:
    #define WINVER 0x500
    至此,基本可以实现你的需求了,Have fun...^_^
      

  4.   

    谢谢skybluebacker, 您的方式我用过了,但因这边的menu较复杂,改menu的刷子颜色无效,只能让menu scroll的背景变成白色,无论刷子颜色怎么设不行。
      

  5.   

    建议重新组织menu(菜单分组等),否则用户使用起来也不方便。