我在一个CControlbar里放了一个CFormView,我要在这个CFormView里画图。
// MainFrm.cpp
m_pView = new CFDView;
CCreateContext *pContext =
 (CCreateContext*) lpCreateStruct->lpCreateParams;m_pView->Create(NULL,NULL,WS_CHILD|WS_VISIBLE,
       CRect(0,0,GetSystemMetrics(SM_CXSCREEN),
                 GetSystemMetrics(SM_CYSCREEN)/8),//我不知道怎么办这里就用
//了GetSystemMetrics,不过一点用也没有。
        &m_wndMyBar2,126,pContext);m_pView->UpdateWindow();然后我在
CFDView.cpp里
CRect rect;
GetClientRect(rect)
发现rect.width()和rect.hight()和我在资源编辑里生成的那个dialog一样大,而不是和我放入CControlBar后的CFormView的整个客户区一般大。
而且在onsize()
CRect rect;
GetClientRect(rect)
发现rect.width()和rect.hight()也没有变化如果我要画图也只画在那个dialog的大小内才可以,超了就没了。怎么办呀,我想了半天了。

解决方案 »

  1.   

    我在一个CControlbar里放了一个CFormView,我要在这个CFormView里画图。
    // MainFrm.cpp
    m_pView = new CFDView;
    CCreateContext *pContext =
     (CCreateContext*) lpCreateStruct->lpCreateParams;m_pView->Create(NULL,NULL,WS_CHILD|WS_VISIBLE,
           CRect(0,0,GetSystemMetrics(SM_CXSCREEN),
                     GetSystemMetrics(SM_CYSCREEN)/8),//我不知道怎么办这里就用
    //了GetSystemMetrics,不过一点用也没有。
            &m_wndMyBar2,126,pContext);m_pView->UpdateWindow();然后我在
    CFDView.cpp里
    CRect rect;
    GetClientRect(rect)
    发现rect.width()和rect.hight()和我在资源编辑里生成的那个dialog一样大,而不是和我放入CControlBar后的CFormView的整个客户区一般大。
    而且在onsize()
    CRect rect;
    GetClientRect(rect)
    发现rect.width()和rect.hight()也没有变化如果我要画图也只画在那个dialog的大小内才可以,超了就没了。怎么办呀,我想了半天了。
      

  2.   

    如果你想使程序清单视图与关联的对话框资源大小一致的话,你在你的FormView中添加
    OnInitaialUpdate();即可。实现如下:
    void YourFormView::OnInitialUpdate()
    {
       CFormView::OnInitialUpdate();
       GetParentFrame()->RecalcLayout();
       ResizeParentToFit(FALSE);
       ResizeParentToFit(TRUE);
    }
      

  3.   

    zengyukye(VC Coder)
    不管用
      

  4.   

    RECT rect;
    this->GetClientRect(&rect);
    ((CButton *)GetDlgItem(IDC_BUTTON1))->MoveWindow(&rect,TRUE);
      

  5.   

    Sorry!看过题目!ResizeParentToFit(FALSE);
    添加到InitDialog里面即可!
      

  6.   

    我在一个CControlbar里放了一个CFormView,我要在这个CFormView里画图。GetParentFrame()->RecalcLayout();不起作用
      

  7.   

    回复人: BinaryWorld(小生菜鸟) ( ) 信誉:100  2003-5-9 21:53:27  得分:0 
     
     
      
    Sorry!看过题目!ResizeParentToFit(FALSE);
    添加到InitDialog里面即可!  
     
    Top