我用它绘制了直线,
invoke MoveToEx,hdc,10,10,NULL
invoke LineTo,hdc,500,300
效果非常好。
我想画可以填充颜色的多边形,可是对于polygon中的数组非常头疼。
=================================
在定义这个之后:
dwPointArray dd 6 dup (?)
dwPointConst dd 10,90,70,150,75,105
----------
???中间这一段代码很头疼
-----------
lea传递地址后,使用这个之前:
invoke SetPolyFillMode,_hDC,WINDING
invoke Polygon,_hDC,addr dwPointArray,3
=====================
如何用一两句简单的命令将所有数组的值传递给dwPointArray,使它正常使用呢?
请高人指点!谢谢。
------解决方案--------------------------------------------------------
多单元数据的传送, 比较简单的就是 rep movsd 了:
mov esi, offset dwPointConst
mov edi, offset dwPointArray
mov ecx, 6
rep movsd
------解决方案--------------------------------------------------------
看下面的这段代码, 应该是将原来各点的 .y 坐标增加了 70, 所以, 下面的这段代码应该是在 rep movsd 之后
------解决方案--------------------------------------------------------
看是要置为哪个点了. 如果是固定的, 可以通过个预置常量来进行, 比如 i:
mov esi, offset dwPointArray[i*8]
push pt.x
pop [esi]
push pt.y
pop [esi][4]
如果这个点不是固定的, 可以用个变量比如 eax 来存放是第几个点, 这样就是:
lea esi, dwPointArray[eax*8]
push pt.x
pop [esi]
push pt.y
pop [esi][4]
上面的 i/eax 都是以 0 为基, 即首个点的序号为 0