以自然分辨率在用户窗体中显示图像,并标记该图像

所以我试图以自己的原始分辨率在用户窗体中显示图像。

我正在使用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。

所以,总结一下,如何将标签放置在表单图像的像素坐标上?

任何想法,你们会有一个巨大的帮助。