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

时间:2017-08-10 11:05:22

标签: excel vba excel-vba

所以我试图以原始分辨率在用户表单中显示图像。

我使用64位Excel来执行此操作。

我有大约300张图片,它们都是标准尺寸,(640x480 - 1024x768等)我想以原始分辨率显示其中一张图片,所以我这样做了:

Image1.Picture = LoadPicture(Image_Load)
Image1.PictureAlignment = fmPictureAlignmentTopLeft
Image1.PictureSizeMode = fmPictureSizeModeClip

(其中Image1MSForms.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。

因此,总结一下,如何在表单图像的像素坐标处放置标签?

你们的任何想法都将是一个巨大的帮助。

0 个答案:

没有答案