如何在PB中调用F1控件如何插入图片(原创)

王朝mssql·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

如何在PB中调用F1控件如何插入图片(原创)

如何在PB中调用F1控件如何插入图片(原创) 一、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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航