表单程序CFormView上只有一个CListCtrl控件,想让控件填充整个CFormView空间.
且随窗口大小自动变化.我写的:
void CAbcView::OnSize(UINT nType, int cx, int cy) 
{
CFormView::OnSize(nType, cx, cy);

if (IsWindow( m_ListCtrl.GetSafeHwnd()))
{
CRect rcWnd ;
GetWindowRect(&rcWnd) ; m_ListCtrl.SetWindowPos(
&wndTopMost, rcWnd.left, rcWnd.top,
rcWnd.Width(), rcWnd.Height(), 
SWP_NOOWNERZORDER | SWP_NOZORDER | SWP_SHOWWINDOW );
}
}结果不正确,表单左上部始终有一部分不能填充

解决方案 »

  1.   

    把GetWindowRect(&rcWnd) ;改成GetClientRect(&rcWnd);试试
      

  2.   

    VOID CMyCSDNView::AdjustWindow()
    {
    CRect rectView;
    GetClientRect(&rectView);

    if (m_wndListCtrlCommunity.GetSafeHwnd())
    {
    m_wndListCtrlCommunity.MoveWindow(2, 2, rectView.right-2, rectView.bottom-2);
    }
    }**********************************************************
    MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)  
     
    可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。 下载地址:http://nj.onlinedown.net/soft/6591.htm
      

  3.   

    if (IsWindow( m_ListCtrl.GetSafeHwnd()))
    {
    m_ListCtrl.SetWindowPos(
    this, 0, 0,
    cx, cy, 
    SWP_NOOWNERZORDER | SWP_NOZORDER | SWP_SHOWWINDOW );
    }
      

  4.   

    void CAbcView::OnSize(UINT nType, int cx, int cy) 
    {
    CFormView::OnSize(nType, cx, cy);

    if (IsWindow( m_ListCtrl.GetSafeHwnd()))
    {
    CRect rcWnd ;
    GetClientRect(&rcWnd) ;
                      m_ListCtrl.MoveWindow(rcWnd);
    }
    }