我的dialog资源里面有很多控件,控件是动态显示的。有的属性为hide。现在要根据动态显示的控件来动态显示一个scrollbar,我dialog是child、none属性。是不是跟dialog的属性有关呢?

解决方案 »

  1.   

    和child style没有关系。
    关键是有两个属性是vertical scroll 和horizontal scroll你选true。动态显示的控件来动态显示 的话就要在你的代码中处理了。
    希望对lz能够有所帮助
      

  2.   

    void CXXDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)  
    {  
    // TODO: Add your message handler code here and/or call default  SCROLLINFO scrollinfo;  
    GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    switch (nSBCode)  
    {  
    case SB_BOTTOM:  
    ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax)*10);  
    scrollinfo.nPos = scrollinfo.nMax;  
    SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    break;  
    case SB_TOP:  
    ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin)*10);  
    scrollinfo.nPos = scrollinfo.nMin;  
    SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    break;  
    case SB_LINEUP:  
    scrollinfo.nPos -= 1;  
    if (scrollinfo.nPos{  
    scrollinfo.nPos = scrollinfo.nMin;  
    break;  
    }  
    SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    ScrollWindow(0,10);  
    break;  
    case SB_LINEDOWN:  
    scrollinfo.nPos += 1;  
    if (scrollinfo.nPos>scrollinfo.nMax)  
    {  
    scrollinfo.nPos = scrollinfo.nMax;  
    break;  
    }  
    SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    ScrollWindow(0,-10);  
    break;  
    case SB_PAGEUP:  
    scrollinfo.nPos -= 5;  
    if (scrollinfo.nPos{  
    scrollinfo.nPos = scrollinfo.nMin;  
    break;  
    }  
    SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    ScrollWindow(0,10*5);  
    break;  
    case SB_PAGEDOWN:  
    scrollinfo.nPos += 5;  
    if (scrollinfo.nPos>scrollinfo.nMax)  
    {  
    scrollinfo.nPos = scrollinfo.nMax;  
    break;  
    }  
    SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    ScrollWindow(0,-10*5);  
    break;  
    case SB_ENDSCROLL:  
    // MessageBox("SB_ENDSCROLL");  
    break;  
    case SB_THUMBPOSITION:  
    // ScrollWindow(0,(scrollinfo.nPos-nPos)*10);  
    // scrollinfo.nPos = nPos;  
    // SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    break;  
    case SB_THUMBTRACK:  
    ScrollWindow(0,(scrollinfo.nPos-nPos)*10);  
    scrollinfo.nPos = nPos;  
    SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);  
    break;  
    }  CDialog::OnVScroll(nSBCode, nPos, pScrollBar);  
    }  
      

  3.   

    话说这个代码我也有一份
    ms codeproject上下的