如何在PB中调用F1控件如何插入图片(原创) - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 如何在PB中调用F1控件如何插入图片(原创) (http://www.webasp.net/article/21/20703.htm) |
| -- 作者:未知 -- 发布日期: 2005-04-29 |
一、API声明: SUBROUTINE CopyMemory(ref METAHEADER Destination , ref blob Source, long Length) LIBRARY "kernel32" Alias for "RtlMoveMemory" SUBROUTINE CopyMemory2(ref blob Destination , ref blob Source, long Length) LIBRARY "kernel32" Alias for "RtlMoveMemory" Function ulong SetMetaFileBitsEx(ulong nSize,ref blob lpData) LIBRARY "gdi32.dll" 二、PB脚本: METAHEADER lst_Hdr integer li_FileNum Long ll_hMF,ll_loops,ll_pos,ll_len blob lb_structure,lb_data,lb_tmp,lb_read li_FileNum = FileOpen("c:\1.wmf", StreamMode!) FileSeek(li_FileNum, 22, FromBeginning!) FileRead(li_FileNum, lb_structure) CopyMemory(lst_Hdr,lb_structure,18) lst_Hdr.mtSize = lst_Hdr.mtSize * 2 FileSeek(li_FileNum, 22, FromBeginning!) IF lst_Hdr.mtSize > 32765 THEN IF Mod(lst_Hdr.mtSize, 32765) = 0 THEN ll_loops = lst_Hdr.mtSize/32765 ELSE ll_loops = (lst_Hdr.mtSize/32765) + 1 END IF ELSE ll_loops = 1 END IF FOR ll_pos = 1 to ll_loops FileRead(li_FileNum, lb_tmp) lb_read = lb_read + lb_tmp NEXT FileClose(li_FileNum) if len(lb_read) < lst_Hdr.mtSize then ll_len = len(lb_read) else ll_len = lst_Hdr.mtSize end if lb_data = blob(space(ll_len)) CopyMemory2(lb_data,lb_read,ll_len) ll_hMF = SetMetaFileBitsEx(lst_Hdr.mtSize, lb_data) ole_1.object.ObjCreatePicture(1, 1, 3, 6, ll_hMF, 7, 0, 0) 三、使用API在PB中直接读取WMF的方式源码,参考: http://www.comesoft.net/bbs/dispbbs.asp?boardid=78&id=26663 效果图见: http://www.comesoft.net/bbs/UploadFile/2004-12/20041229151230298.JPG 或 http://blog.csdn.net/images/blog_csdn_net/balloonman2002/17312/o_DEMO.GIF 原贴见:http://community.csdn.net/Expert/topic/3673/3673523.xml?temp=.7985193 |
| webasp.net |