自己做了一个绘图工具,但是不知道界面大于屏幕显示时,用CScrollView怎样才能实现滚动界面的效果? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接让你的视类继承自CScrollView就行了.然后,画图的时候,注意坐标的转换.从客户区到窗口,从窗口到客户区 视类继承自CScrollView,已经做完了。但是:“画图的时候,注意坐标的转换.从客户区到窗口,从窗口到客户区” 不知道怎么实现! pView->SetScrollSizes(MM_TEXT, sizeTotal);当你的视图大于sizeTotal 时,就出现滚动了. 如二楼,画图时要加上坐标转: CPoint ScrollPoint,MovePoint; ScrollPoint=GetScrollPosition(); MovePoint.x=point.x+ScrollPoint.x;//Óйö¶¯ÌõʱµÄÇé¿ö MovePoint.y=point.y+ScrollPoint.y; 坐标转换有一个比较方便的办法.在你的鼠标消息响应函数里(如OnMouseMove)加上:CDC* pDC = GetDC();OnPrepareDC(pDC);pDC->DPtoLP(&point);这里的pDC就是你要在上面画图的DC,你可以自己改下.具体的用法查下MSDN.里面很全. 对了,还有那个point,就是当然鼠标的位置. 类的功能介绍 请教如何学习C\C++ 一个字符串,写到文本文件里面后变成了 乱码, 100分!我启用Unicode字符集之后,出现很多error LNK2019: unresolved external symbol,请问怎么处理? VC的几个初级问题 wchar_t类型怎样转换? 简单的问题? bho and hook问题 怎样创建 调色板 并使用? 大神来解答一下指针问题 Visio 怎么样激活一个序列图的对象生命线?? 请大家进来帮看看,这段代码!!!!!
但是:“画图的时候,注意坐标的转换.从客户区到窗口,从窗口到客户区” 不知道怎么实现!
ScrollPoint=GetScrollPosition();
MovePoint.x=point.x+ScrollPoint.x;//Óйö¶¯ÌõʱµÄÇé¿ö
MovePoint.y=point.y+ScrollPoint.y;
加上:
CDC* pDC = GetDC();
OnPrepareDC(pDC);
pDC->DPtoLP(&point);这里的pDC就是你要在上面画图的DC,你可以自己改下.具体的用法查下MSDN.里面很全.