读书人

win7下画图程序的有关问题

发布时间: 2013-12-23 14:30:52 作者: rapoo

win7下画图程序的问题
在win7下一个mfc的单文档应用程序
在CMyView类中的
OnLButtonDown函数中获得鼠标按下的point1并存储在MyView类的成员变量中,

OnLButtonUp函数中获得鼠标up的point2,画线


void Cmfc_t1View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);
dc.MoveTo(point1);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}

为什么不能立即看到这个线,要移动下窗口才能看见?在XP下就可以立即看见。求解释及解决办法。
[解决办法]
没有更新窗口吧,Invalidate();一下
[解决办法]
看到星级人物果断酱油路过~
[解决办法]
引用:
我没有在doucument里保存这两个点,也没有写OnDraw函数,Invalidate()不就什么都没有了?

点是在Cmfc_t1View上的吧,
[解决办法]
我用VS2008在win7(64bit)下测试,没问题
可能是你编译器问题?

[解决办法]
贴下程序


// CsingDOCView 消息处理程序
CPoint point1;

void CsingDOCView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);
dc.MoveTo(point1);
dc.LineTo(point);


CView::OnLButtonUp(nFlags, point);
}

void CsingDOCView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
point1=point;
CView::OnLButtonDown(nFlags, point);
}

[解决办法]
绘制的东西最好放到onDraw或则onPaint里
[解决办法]
楼主加油 询问时候没有人给出想要的答案 是一种焦油与等待
[解决办法]
不知道为什么,但把vs2010关了,再开启vs2010,打开刚刚的那个工程,再运行,一切OK了
[解决办法]
试试ZoomIt软件http://technet.microsoft.com/zh-cn/sysinternals/bb897434
[解决办法]
VS2010+win7的确有此问题(2010BUG?)
看来只能在onDraw或onPait中写了

读书人网 >C++

热点推荐