所以我试图以原始分辨率在用户表单中显示图像。
我使用64位Excel来执行此操作。
我有大约300张图片,它们都是标准尺寸,(640x480 - 1024x768等)我想以原始分辨率显示其中一张图片,所以我这样做了:
Image1.Picture = LoadPicture(Image_Load)
Image1.PictureAlignment = fmPictureAlignmentTopLeft
Image1.PictureSizeMode = fmPictureSizeModeClip
(其中Image1
是MSForms.Image
个对象)
我需要用大约5-30个标签(每个图像不同)标记这些图像,我确切地知道我想要将这些标签的左上角放在哪个像素上,但你不能做看起来在VBA中有像素的东西。
所以,我试过了,(其中px
是输入像素值):
Px / ActiveWindow.PointsToScreenPixelsX(1)
- 对于800像素的输入,返回值为29.63,大约为40像素。对于使用Y
函数的600输入,它返回2.26(这大约是3个像素)。
Private Declare Function GetSystemMetrics32 Lib "user32" Alias "GetSystemMetrics"
......这种情况持续了一段时间。我无法在64位办公室使用它。
TwipsPerPixelX()
此功能仅在32位办公室退出。
Application.PixelsToPoints
此功能仅存在于所有其他办公应用程序中。不是Excel。
因此,总结一下,如何在表单图像的像素坐标处放置标签?
你们的任何想法都将是一个巨大的帮助。