是不是SetWindowExtEx,SetViewportExtEx对image不起作用 (50分)

  • 主题发起人 主题发起人 dragonchow
  • 开始时间 开始时间
D

dragonchow

Unregistered / Unconfirmed
GUEST, unregistred user!
……
SetMapMode(Canvas.Handle,MM_ANISOTROPIC);
……
SetWindowExtEx(image1.Canvas.Handle,640,480,nil);
SetViewportExtEx(image1.Canvas.Handle,640,480,nil);
image1.Canvas.Rectangle(10,10,100,100);
……
SetWindowExtEx(image1.Canvas.Handle,640,480,nil);
SetViewportExtEx(image1.Canvas.Handle,1024,768,nil);
image1.Canvas.Rectangle(10,10,100,100);
输出的结果是一样的,那如果要在image上用不同的坐标绘图,该怎么办呢
 
试试SetMapMode(Image.Canvas.Handle,MM_LOMETRIC)

var
PrevMapMode:Integer;
begin
PrevMapMode:=SetMapMode(Image.Canvas.Handle,MM_LOMETRIC);
try
SetViewportExtEx(Image.Canvas.Handle,0,Image.ClientHeight);
Image.Canvas.MoveTo(0,0);
Image.Canvas.LineTo(0,Image.ClientHeight);
......
......
finally
SetMapMode(Image.Canvas.Handle,PrevMapMode)
end;
end;
 
不是很懂,能解释一下吗?
 
首先设置映射模式,并保存原映射模式
然后设置视区的坐标原点
开始绘图
绘图结束,恢复原映射模式
 
我要实现的是在image上使用不同放大倍数绘图,这样能实现吗?
 
不是很明白,你能说具体一点吗
 
如果你的映射模式没有改,上面的代码是无效的
SetMapMode(Image.Canvas.Handle,MM_LOMETRIC)
 
后退
顶部