+ -
当前位置:首页 → 问答吧 → SETSCROLLSIZE后拖动滚动条错误

SETSCROLLSIZE后拖动滚动条错误

时间:2011-12-09

来源:互联网

读取一个DIB,顺便在里面就设置SCROLL了。
C/C++ code
void CTran1_6Doc::OnOpenToBexam() 
{
    CFileDialog fileDlg(TRUE);
    fileDlg.m_ofn.lpstrTitle="打开待测图像文件";
    fileDlg.m_ofn.lpstrFilter="BMP Files(*.BMP)\0*.BMP\0All Files(*.*)\0*.*\0\0";
    fileDlg.m_ofn.lpstrDefExt="BMP";
    if(IDOK==fileDlg.DoModal())
    {
    if(!DibToBexam.GetDibFromFile(fileDlg.GetPathName()))
    {
        return;
    }
    }
    long DibWidth=DibToBexam.GetWidth();
    long DibHeight=DibToBexam.GetHeight();
    CTran1_6View* pTestView;  
    POSITION pos=GetFirstViewPosition();  
    pTestView=((CTran1_6View* )CTran1_6Doc::GetNextView(pos)); 
    pTestView->Step=2;
    pTestView->SetScrollSizes(MM_TEXT,CSize(DibToBexam.GetWidth(),DibToBexam.GetHeight()));
    SetScrollSizes(MM_TEXT, CSize (Broadrect.Width(),Broadrect.Height()));
    pTestView->UpdateWindow();

}


然后在ONDRAW输出:C/C++ code
void CTran1_6View::OnDraw(CDC* pDC)
{
    CTran1_6Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc); 
    
    CRect Dibrect;
    Dibrect.top=Dibrect.left=0;
    Dibrect.right=DibWidth;
    Dibrect.bottom=DibHeight;
    pDoc->DibToBexam.SetToDC(dc,Dibrect,CPoint(0,0));

    
}


图像可以呈现,但是把滚动条拉下去以后窗口重新绘制,呈现图像还是原来没有拉动滚动条的那个部分。
同一个文件的CBITMAP格式的图就在定义SETSCROLLSIZE然后正常呈现。
求教一下大家~怎么解决这个问题。

作者: darkwhitesnow   发布时间: 2011-12-09

菜鸟,友情帮顶

作者: judyyear   发布时间: 2011-12-16