关于bitblt的用法,求助(40分)

  • 主题发起人 主题发起人 vicluck
  • 开始时间 开始时间
V

vicluck

Unregistered / Unconfirmed
GUEST, unregistred user!
将一个bmp文件贴到窗口上,我想要一段源代码。<br>不要用控件!<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>
 
Caption := Format('%d %d', [ABMP.Width, ABMP.Height]);//这句没用。
 
对不起,我没说清楚,<br>我希望能不用VCL库,只用API搞掂。<br>希望你能在指点一下。谢谢了
 
只用 API 需自己读解 BMP 格式文件,怎么得了?<br>至少写 300 行!!!
 
??没有VCL库啊
 
TBITMAP是 Graphics.pas中定义的,就是VCL库呀。<br>用api我记得大概过程是:<br>LoadImage<br>GetDC<br>CreateCompatibleDC<br>SelectObject<br>Bitblt<br>DeleteDC<br>ReleaseDC<br>好像是用这一堆函数,我不是很清楚,<br>看那位对这些比较熟的。<br>当然,也许不是这个过程...
 
procedure TForm1.Button1Click(Sender: TObject);<br>var hbm:HBITMAP; hdcImage:HDC; &nbsp;bm:BITMAP;<br>begin<br>hbm:=LoadImage(0, 'C:/xxxx.bmp', IMAGE_BITMAP, 0, 0,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LR_LOADFROMFILE or LR_CREATEDIBSECTION);<br>hdcImage := CreateCompatibleDC(0);<br>SelectObject(hdcImage, hbm);<br>GetObject(hbm, sizeof(bm), @bm);<br>BitBlt(Self.canvas.handle, 0, 0, bm.bmWidth, bm.bmHeight, hdcImage, 0, 0, SRCCOPY);<br>DeleteDC(hdcImage);<br>end;
 
接受答案了.
 
vicluck 老兄:<br>&nbsp; 哈哈哈哈,发错分了,o*o 是对的。<br>&nbsp; &lt;a href="DispQ.asp?LID=246797"&gt;请 o*o 进来领分&lt;/a&gt;
 
Sorry, 我把分数加给croco了<br>我本想加给o*o的, sorry.<br>:-(
 
后退
顶部