2011-09-08 85 views
0

我在写一个应用程序,其中有30行,1列有数据。 30行中的每个单元格都放置了一个图片对象(它表示Excel形状)。 如果我尝试获取图片对象的屏幕位置,那是在可见范围内,那么我能够正确地获得屏幕坐标例如对于单元格A1..A10说。如何获取放置在Excel 2007/2010 excel单元格中的图片(一种形状)的屏幕坐标

但是,当我尝试获取不在可见范围内的图片的屏幕坐标时,返回的值不正确。

因为如果我对计算出的X和Y屏幕坐标应用ActiveWindow.RangeFromPoint(X, Y),API将返回null。

有人可以帮我吗?

回答

1

在我看来,你所说的一切都是有道理的 - 任何东西都必须放在屏幕上,因为这决定了它们的坐标!例如,最高和最左的坐标值将是(0,0),而(在我的情况下)最右边的值将是(1920,1080),因为我的屏幕是1920 x 1080.如果一个对象,或点,或任何出现在屏幕外的点,这些点可能会有一个空值,因为Excel只测量屏幕可见范围内的坐标。现在,也许有一种方法可以规避这种情况,并说第100行有问题的坐标值为(10,3000),但是谁知道。

您目前遇到的问题很可能是我遇到的问题 - 您如何检测鼠标移动到屏幕上的特定对象上?看起来您需要一个程序来持续重新测量所有屏幕对象的坐标,并将这些坐标传递给您需要的任何程序。图片或单元格可能具有某个xy位置,但是如果用户向上滚动,向下,向左或向右,或放大或缩小,该对象将相对于屏幕的边缘移动,因此具有不同的坐标。如果你知道一个API调用来做到这一点,我当然想听到它。

我知道我还没有完全回答你的问题,但我希望这可以帮助。

相关问题