一个简单的单文档视图程序,
修改了滚动视图区域的大小和滚动条的滚动量。
在OnDraw()函数中把坐标原点移动到客户区的中心,并绘制了2条直线。
其中一条直线在鼠标点击滚动条的时候有一小段没有更新。如果不改变坐标原点,就不会出现线段更新的问题。
请问应该怎么修改,才能不受映射模式和坐标原点的影响?只对以下两个函数做了改动,其他程序没有变化。
void CSRViewView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate(); CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 20000;
CSize sizePage,sizeLine;
sizeLine.cx=sizeTotal.cx/800;
sizeLine.cy=sizeTotal.cy/800;
sizePage.cx=sizeTotal.cx*2;
sizePage.cy=sizeTotal.cy*2;
SetScrollSizes(MM_TEXT, sizeTotal,sizePage,sizeLine);
}void CSRViewView::OnDraw(CDC* pDC)
{
CSRViewDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect rect;
GetClientRect(&rect);
CPoint pt=CPoint(rect.Width()/2,rect.Height()/2); pDC->SetViewportOrg(pt);
pDC->MoveTo(0,0);
pDC->LineTo(400,400);
pDC->MoveTo(0,0);
pDC->LineTo(-20,-50);
}
修改了滚动视图区域的大小和滚动条的滚动量。
在OnDraw()函数中把坐标原点移动到客户区的中心,并绘制了2条直线。
其中一条直线在鼠标点击滚动条的时候有一小段没有更新。如果不改变坐标原点,就不会出现线段更新的问题。
请问应该怎么修改,才能不受映射模式和坐标原点的影响?只对以下两个函数做了改动,其他程序没有变化。
void CSRViewView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate(); CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 20000;
CSize sizePage,sizeLine;
sizeLine.cx=sizeTotal.cx/800;
sizeLine.cy=sizeTotal.cy/800;
sizePage.cx=sizeTotal.cx*2;
sizePage.cy=sizeTotal.cy*2;
SetScrollSizes(MM_TEXT, sizeTotal,sizePage,sizeLine);
}void CSRViewView::OnDraw(CDC* pDC)
{
CSRViewDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect rect;
GetClientRect(&rect);
CPoint pt=CPoint(rect.Width()/2,rect.Height()/2); pDC->SetViewportOrg(pt);
pDC->MoveTo(0,0);
pDC->LineTo(400,400);
pDC->MoveTo(0,0);
pDC->LineTo(-20,-50);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货