附加问题,MFC中ID_FILE_CLOSE是关闭窗口的消息
那么,窗口最大化的消息是什么?

解决方案 »

  1.   

    详细说明一下吧
    我在窗口里放了CDialogBar,并且在CDialogBar上放了一个按钮,我想让按钮显示在窗口最右端。手工在RESOURCE EDIT里把按钮拽到CDialogBar最右端的话只能在主窗口最大化是有效果,一旦窗口小了,按钮就不可见了怎办?
      

  2.   

    再详细解释解释,我就是想在rebar上自绘关闭、最小化、最大化几个按钮。谁能帮我控制按钮位置跟主窗口按钮平行?
      

  3.   

    你可以在OnSize()消息处理函数中对按纽重绘
      

  4.   

    你可以在OnSize()消息处理函数中对按纽重绘
      

  5.   

    发现另外一个问题,我自绘的按钮执行的函数是
    onclosechildframe()
    {
    SendMessage(WM_COMMAND,ID_FILE_CLOSE);
    }结果一按就把所有子窗口全都关闭了,本应该是关闭当前子窗口啊!
    WHY?
      

  6.   

    如果你要在DialogBar上面画按钮的话,可以试试看这个方法.
    void CMainFrame::RecalcLayout(BOOL bNotify) 
    {
        CFrameWnd::RecalcLayout(bNotify);
        if (m_wndDlgBar.m_hWnd)
       {
        CRect rc;
        RepositionBars(AFX_IDW_DIALOGBAR,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rc);
        TRACE("rc=%d,%d,%d,%d\n",rc.left,rc.top,rc.right,rc.bottom);
        rc.right -= 12;
        rc.left = rc.right - GetSystemMetrics(SM_CYCAPTION);
        rc.top = 2;
        rc.bottom = rc.top + GetSystemMetrics(SM_CYCAPTION);
        CWnd* pWnd = m_wndDlgBar.GetDlgItem(IDC_CLOSEBTN);
        if(pWnd)
           pWnd->MoveWindow(&rc);
       }
    }
    那个12是我试出来的结果,不过不要问我为什么.
    ID_FILE_CLOSE执行的是OnFileClose,OnFileClose又调用了CDocument::OnCloseDocument.我估计是你的文档模板都基于同一个Document类,才会出现这种情况,Document关闭时会把所有和它联系的Vie和FrameWnd都关闭的.
      

  7.   

    在类向导中增加WM_SIZE消息处理函数和按钮句柄,在处理函数中通过按钮句柄移动该按钮到适当位置.
      

  8.   

    是啦!YuHao说的是了,的确是基于同一个Document类。
    我那不是一个EDit一个HTMLVIEW么,关闭的时候把跟当前窗口的VIEW相关联的咔嚓了...
    怎么避免?
      

  9.   

    不知道你动态生成视图的具体做法是怎样的,如果为每个视图都生成一个Document应该可以避免这个问题.
    或者为View类增加一个ID_FILE_CLOSE处理函数,把自己关闭了,不要让Document来处理这个消息.
      

  10.   

    houyb_vc(逍遥) :
             不要急,是你的终究是你的