以自然分辨率在用户窗体中显示图像,并标记该图像
所以我试图以自己的原始分辨率在用户窗体中显示图像。
我正在使用64位Excel来做到这一点。
我有大约300个图像,它们都是标准尺寸(640×480 – 1024×768等)。我想以其原始分辨率显示其中的一个图像,所以我这样做了:
Image1.Picture = LoadPicture(Image_Load) Image1.PictureAlignment = fmPictureAlignmentTopLeft Image1.PictureSizeMode = fmPictureSizeModeClip
(其中Image1
是一个MSForms.Image
对象)
我需要用大约5-30个标签来标记这些图像(每个图像都不相同),而且我确切地知道要将这些标签的左上angular放在哪个像素上,但是对于VBA中的像素却无能为力看上去。
所以,我试过了,(其中px
是input像素值):
Px / ActiveWindow.PointsToScreenPixelsX(1)
– 这将返回一个值为29.63的800像素的input,这几乎是40像素。 使用Y
函数(大约3个像素),input600时返回2.26。
Private Declare Function GetSystemMetrics32 Lib "user32" Alias "GetSystemMetrics"
…这会持续一段时间。 我不能在64位的办公室使用这个。
TwipsPerPixelX()
此函数只能在32位办公室中退出。
Application.PixelsToPoints
此函数只存在于其他所有Office应用程序中。 不是Excel。
所以,总结一下,如何将标签放置在表单图像的像素坐标上?
任何想法,你们会有一个巨大的帮助。