VB画图,LineTo和MoveToEx坐标问题???
我用picSheet.Scale(0,200)-(100,-200)自己定义坐标,用Line划线时,是自己设定的坐标。但是用LineTo和MoveToEx划线时,自己定义...
我用picSheet.Scale (0, 200)-(100, -200)自己定义坐标,用Line划线时,是自己设定的坐标。但是用LineTo和MoveToEx划线时,自己定义的坐标却没用,为什么,谢谢了先
picSheet.Scale (0, 200)-(100, -200)
vDRP = MoveToEx(picSheet.hdc, xData(MAX), yData(MAX), vPt)
vDRP = LineTo(picSheet.hdc, xData(MAX + 1), yData(MAX + 1))
这里X和Y都存储在数组xData和yData中, 展开
picSheet.Scale (0, 200)-(100, -200)
vDRP = MoveToEx(picSheet.hdc, xData(MAX), yData(MAX), vPt)
vDRP = LineTo(picSheet.hdc, xData(MAX + 1), yData(MAX + 1))
这里X和Y都存储在数组xData和yData中, 展开
1个回答
展开全部
lineto,movetoex都是API函数,都是以像素为单位的,你只能将你的坐标转换成像素单位代入才有效....
你要把X坐标这样变换一下:picSheet.ScaleX(x, vbUser, vbPixels),Y坐标这样变换:picSheet.ScaleY(y, vbUser, vbPixels)
就是说你的代码要这样修改一下
vDRP = MoveToEx(picSheet.hdc, picSheet.ScaleX(xData(MAX), vbUser, vbPixels), picSheet.ScaleY(yData(MAX), vbUser, vbPixels), vPt)
vDRP = LineTo(picSheet.hdc, picSheet.ScaleX(xData(MAX + 1), vbUser, vbPixels), picSheet.ScaleY(yData(MAX + 1), vbUser, vbPixels))
你要把X坐标这样变换一下:picSheet.ScaleX(x, vbUser, vbPixels),Y坐标这样变换:picSheet.ScaleY(y, vbUser, vbPixels)
就是说你的代码要这样修改一下
vDRP = MoveToEx(picSheet.hdc, picSheet.ScaleX(xData(MAX), vbUser, vbPixels), picSheet.ScaleY(yData(MAX), vbUser, vbPixels), vPt)
vDRP = LineTo(picSheet.hdc, picSheet.ScaleX(xData(MAX + 1), vbUser, vbPixels), picSheet.ScaleY(yData(MAX + 1), vbUser, vbPixels))
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询