我要自己绘制那个区域

解决方案 »

  1.   

    菜单会换行的,如Notepad的菜单可能变成这样□--------------□□□
    |  文件(F) 编辑(E)  |
    |  格式(O)           |
    |  帮助(H)           |
    |                    |不知哪一个区域才是你要的
      

  2.   

    指的顶级菜□--------------□□□
    |  文件(F) 编辑(E)  |□□□□□□##########################
    |  格式(O)           |
    |  帮助(H)           |
    |                    |也就是的所有"#"的宽度
      

  3.   

    void CYourWnd::OnNcPaint() 
    {
        Default();
        
        CMenu *pmenu = GetMenu();
        int nItemCount = pmenu->GetMenuItemCount();    MENUBARINFO mbi;
        mbi.cbSize = sizeof(MENUBARINFO);    GetMenuBarInfo(m_hWnd, OBJID_MENU, 0, &mbi);
        CRect rcMenuBar(mbi.rcBar);
        
        GetMenuBarInfo(m_hWnd, OBJID_MENU, 1, &mbi);
        int nHeight = mbi.rcBar.bottom - mbi.rcBar.top;
        int nLeft = mbi.rcBar.right;    for(int n = 2; n <= nItemCount; n++)
        {
            GetMenuBarInfo(m_hWnd, OBJID_MENU, n, &mbi);
            if(mbi.rcBar.top > rcMenuBar.top)
                break;        nLeft = mbi.rcBar.right;
        }
        
        CDC *pdc = GetWindowDC();
        CRect rcWindow;
        GetWindowRect(rcWindow);    CRect rcDraw(CPoint(nLeft - rcWindow.left, rcMenuBar.top - rcWindow.top), CSize(rcMenuBar.right - nLeft, nHeight));
        
        pdc->Rectangle(rcDraw);    ReleaseDC(pdc);
    }测试程序
    http://my.6to23.com/cigarette/md1.zip
      

  4.   

    bcpl(闲庭信步) 高手佩服分数奉上!
      

  5.   

    我编译时候出现
    MENUBARINFO
    GetMenuBarInfo未定义就直接编译你的程序怪这个结构和函书在WINDOWS.h里有定义