我在我的视类存放了一个 Matrix m_matrix 对象, 然后
在 Onsize的时候重新计算 Matrix的缩放比例然后通过 SetElement来把缩放比例
和偏移位置设到当先的m_matrix对象里面,
现在发现每次Onsize后总会有一定的误差, 当我把窗口变小的时候图形(矢量的)也
跟着对应的缩小 , 可是再放大的时候就不能恢复到最初的大小, 不知道有没有人碰到过
这样的问题。
因为代码在实验室的服务器上拿不过来, 我描述一下我的做法。
具体 1。
class CMyView:public CView
{
Matrix m_matrix; //矩阵对象
DPtoLP (Point& pt, PointF& ptF, int count) //设备坐标转到逻辑坐标
{
m_matrix.Transform(pt, ptF, count);//使用矩阵来控制
}
}
2。
在CMyView::Onsize(UINT Type, int cx, int cy)
{
static SizeF size(cx, cy)
PointF ptStart(0, cy); //左下脚
PointF ptSS;
DPtoLP(ptStart, ptSS, 1);
PointF ptEE
PointF ptEnd(cx, 0); //右上角
DPtoLP(ptEnd,ptEE, 1);
ptSS.Y += sacle*cy; //因为Gdiplus的坐标默认是向下为正, 所以调整过来。
scale = (ptEE.X-ptSS.X)/cx;
scale = max(scale, (ptEE.Y-ptSS.Y)/cy);
m_matrix.SetElements(scale, 0, 0, -scale, ptSS.X, ptSS.Y); size.X = cx;
size.Y = cy;
} CMyView::OnDraw(CDC *pDC)
{
Graphics g(pDC->m_hDC);
g->Invert();
DrawMyPoly(pen, brush, g);
}不好意思,这里我只是描述了我的做法 , 不知道为什么,绘制 的时候开始还好图形正好包在
客户窗口内, 可是缩放几次(指的是把窗口拉大拉小)之后, 矩阵的缩放系数就误差越来越大,而图形也越来越小。
麻烦各位知道的能不能给个提示???
在 Onsize的时候重新计算 Matrix的缩放比例然后通过 SetElement来把缩放比例
和偏移位置设到当先的m_matrix对象里面,
现在发现每次Onsize后总会有一定的误差, 当我把窗口变小的时候图形(矢量的)也
跟着对应的缩小 , 可是再放大的时候就不能恢复到最初的大小, 不知道有没有人碰到过
这样的问题。
因为代码在实验室的服务器上拿不过来, 我描述一下我的做法。
具体 1。
class CMyView:public CView
{
Matrix m_matrix; //矩阵对象
DPtoLP (Point& pt, PointF& ptF, int count) //设备坐标转到逻辑坐标
{
m_matrix.Transform(pt, ptF, count);//使用矩阵来控制
}
}
2。
在CMyView::Onsize(UINT Type, int cx, int cy)
{
static SizeF size(cx, cy)
PointF ptStart(0, cy); //左下脚
PointF ptSS;
DPtoLP(ptStart, ptSS, 1);
PointF ptEE
PointF ptEnd(cx, 0); //右上角
DPtoLP(ptEnd,ptEE, 1);
ptSS.Y += sacle*cy; //因为Gdiplus的坐标默认是向下为正, 所以调整过来。
scale = (ptEE.X-ptSS.X)/cx;
scale = max(scale, (ptEE.Y-ptSS.Y)/cy);
m_matrix.SetElements(scale, 0, 0, -scale, ptSS.X, ptSS.Y); size.X = cx;
size.Y = cy;
} CMyView::OnDraw(CDC *pDC)
{
Graphics g(pDC->m_hDC);
g->Invert();
DrawMyPoly(pen, brush, g);
}不好意思,这里我只是描述了我的做法 , 不知道为什么,绘制 的时候开始还好图形正好包在
客户窗口内, 可是缩放几次(指的是把窗口拉大拉小)之后, 矩阵的缩放系数就误差越来越大,而图形也越来越小。
麻烦各位知道的能不能给个提示???
解决方案 »
- error LNK2001: unresolved external symbol _main等.
- BitBlt每次运行结果很诡异
- vs2008安装SP1后,新建任何一个MFC程序,都弹出一大堆错误!
- 创建Button的问题
- 继续提问关于资源管理器的问题....
- 求助:做的ActiveX控件,在container里好使,但嵌入对话框中就翘翘……
- 高分请教:关于函数调用
- 使用Tab Control时,能否把标签隐藏,大虾指教!
- 他妈的,沈阳没有卖盗版的了,这让我怎么活??
- 在edit框中只允许输字符,不予许输数字,如何处理?
- .net中如何获取文件的长度(FileLen( argv[] ))怎么不行那?
- 如何增加ACCESS里的列?
图形能够根据窗口大小也缩放!
其实不用矩阵也能控制, 如果那位知道怎么用Gdi控制也很欢迎!!