用什么WIN API 代替 CANVAS。DRAW 和CANVAS。StretchDraw(100分)

  • 主题发起人 主题发起人 yjj100
  • 开始时间 开始时间
Y

yjj100

Unregistered / Unconfirmed
GUEST, unregistred user!
用什么WIN API 代替 CANVAS。DRAW 和CANVAS。StretchDraw
 
bitblt,stretchblt
 
看一下TBitmap.Draw()吧
 
你要画图可以用bitblt了,<br>要画直线可用moveex 和lineto<br>你设置好bitblt的参数就可以实现StretchDraw功能了
 
bitblt参数:<br>BitBlt(OutputDC, Xpos, Ypos, imWidth, imHeight, SrcDC, Xpos, Ypos, SRCCOPY)<br>
 
想实现stretchdraw还是用stretchblt吧
 
这是从别的地方考来的例子,看看吧:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; ABMP: TBitmap;<br>begin<br>&nbsp; ABMP := TBitmap.Create;<br>&nbsp; ABMP.LoadFromFile('C:/PWIN98/Clouds.bmp');<br>&nbsp; Caption := Format('%d %d', [ABMP.Width, ABMP.Height]);<br>&nbsp; Bitblt(Self.Canvas.Handle, 0, 0, ABMP.Width, ABMP.Height,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ABMP.Canvas.Handle, 0, 0, SrcCopy);<br>&nbsp; ABMP.Free;<br>end;<br>
 
HDC<br>bitblt<br>stretchblt
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2080687
 
后退
顶部