关于滚动视图的一个问题;
一个简单的单文档视图程序,
修改了滚动视图区域的大小和滚动条的滚动量。
在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);
}
问题点数:20、回复次数:1Top
1 楼xzx4941030(阿喜)回复于 2005-07-03 09:53:43 得分 0
怎么没有人回答我的问题?Top




