WMF文件类型及其格式 一个windows metafile包括两个部分,第一部分是文件头信息,使用一个metaheader结构保存; struct { word mttype;表示图元文件是存在内存里还是磁盘上 word mtheadersize; 表示图元文件头大小 word mtversion;使用的windows版本号 dword mtsize; 图元文件大小 word mtnoobjects;同时存在于文件中的最大对象数目 dword mtmaxrecord;最大尺寸的GDI记录 word mtnoparameters;保留域 } metaheader; 第二部分是GDI函数记录表,使用一个metarecord结构保存。 struct { dword rdsize;记录大小 word rdfunction;该记录的GDI函数名 word rdparm[];该GDI函数的参数 } metarecord; 实际上,还有一种图元文件类型,称为活动式图元文件(placeable windows metafile ),它虽然属于标准图元文件,但是它同时包含了该图像的原始大小及缩放有关的信息,允许应用程序以指定的尺寸自由地显示该图像,这些信息存在了一个称为metafileheader 的结构中,这个结构在文件的第一部分,后面才是前文所述的两个结构。struct { dword key; 该值一定为0x9ac6cdd7l,表示这是一个活动式图元文件 handle hmf;未用,置0 rect bbox; 该图像的原始大小 word inch;1英寸于图元文件逻辑单位之比 dword reserved; 保留域 word checksum;文件头检验和 } metafileheader;需要指出的是,微软的MS Office软件自带的图元文件,绝大部分是这种活动式图元文件,所以一定要按照这种格式访问,才可以正确使用。不过vb本身就支持wmf文件,如果要求不高的话直接使用就可以了
vb支持wmf呀,你想问什么??
我用了一个Picturebox(图形在此窗口显示) 和一个Image a(放于picturebox中,实现图片的大小调整,装入的是.wmf图片) 组合应用。现在想在image a 中的一个位置加入另外一个image b ,且要求b能随a的放大和缩小而做相应的改变,且b能响应单/双击事件,且b图形的背景色变成另外一个颜色。 应如何做呢? THANKS
相对位置?相对于什么?
一个windows metafile包括两个部分,第一部分是文件头信息,使用一个metaheader结构保存;
struct {
word mttype;表示图元文件是存在内存里还是磁盘上
word mtheadersize; 表示图元文件头大小
word mtversion;使用的windows版本号
dword mtsize; 图元文件大小
word mtnoobjects;同时存在于文件中的最大对象数目
dword mtmaxrecord;最大尺寸的GDI记录
word mtnoparameters;保留域
} metaheader;
第二部分是GDI函数记录表,使用一个metarecord结构保存。
struct {
dword rdsize;记录大小
word rdfunction;该记录的GDI函数名
word rdparm[];该GDI函数的参数
} metarecord;
实际上,还有一种图元文件类型,称为活动式图元文件(placeable windows metafile ),它虽然属于标准图元文件,但是它同时包含了该图像的原始大小及缩放有关的信息,允许应用程序以指定的尺寸自由地显示该图像,这些信息存在了一个称为metafileheader 的结构中,这个结构在文件的第一部分,后面才是前文所述的两个结构。struct {
dword key; 该值一定为0x9ac6cdd7l,表示这是一个活动式图元文件
handle hmf;未用,置0
rect bbox; 该图像的原始大小
word inch;1英寸于图元文件逻辑单位之比
dword reserved; 保留域
word checksum;文件头检验和
} metafileheader;需要指出的是,微软的MS Office软件自带的图元文件,绝大部分是这种活动式图元文件,所以一定要按照这种格式访问,才可以正确使用。不过vb本身就支持wmf文件,如果要求不高的话直接使用就可以了
应如何做呢?
THANKS