由于时间仓促,翻译的不是很好,希望大家能够将就看看。
将 gifs, jpgs文件加载到表面 【相关文章:VFP中利用Excel制作数据库报表】
【扩展阅读:在VFP中全面控制Excel】
作者: w-buffer 【扩展信息:在VFP程序中创建工具条】 相对而言,不是很难,我们并不需要解码器来得到jpg的每一个字节,或任何类似于次的,相反,我们将用一个图片框来打开一个图片,然后再将其传到表面,但首先我门需要声明api函数: public declare function bitblt lib "gdi32" (byval hdestdc as long, byval x as long, byval y as long, byval nwidth as long, byval nheight as long, byval hsrcdc as long, byval xsrc as long, byval ysrc as long, byval dwrop as long) as long public declare function createcompatibledc lib "gdi32" (byval hdc as long) as long public declare function deletedc lib "gdi32" (byval hdc as long) as long public declare function selectobject lib "gdi32" (byval hdc as long, byval hobject as long) as long public declare function stretchblt lib "gdi32" (byval hdc as long, byval x as long, byval y as long, byval nwidth as long, byval nheight as long, byval hsrcdc as long, byval xsrc as long, byval ysrc as long, byval nsrcwidth as long, byval nsrcheight as long, byval dwrop as long) as long 现在我们要为加载图片作好准备 dim pict1 as stdpicture set pict1 = loadpicture("mypict.jpg") 创造表面: dim tdesc as ddsurfacedesc2 tdesc.lflags = ddsd_caps or ddsd_height or ddsd_width tdesc.ddscaps.lcaps = ddscaps_offscreenplain tdesc.lheight = clng((pict1.height * 0.001) * 567 / screen.twipsperpixely) tdesc.lwidth = clng((tpict.width * 0.001) * 567 / screen.twipsperpixelx) set surf = ddraw.createsurface(tdesc) dim surfdc as long, pictdc as long surfdc = surf.getdc pictdc = createcompatibledc(0) selectobject pict1.handle, pictdc 我们将使用dcs与bitblt或stretchblt来把pic1复制到表面 只复制成一样大小: bitblt surfdc, 0, 0, tdesc.lwidth, tdesc.lheight, pictdc, 0, 0, vbsrccopy现在复制并且改变图片大小
stretchblt surfdc, 0, 0, stretchwidth, stretchheight, pictdc, 0, 0, tdesc.lwidth, tdesc.lwidth, vbsrccopy 释放dc: surf.releasedc surfdc delectedc pictdc set pict1 = nothing... 下一页