2011-09-08 83 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調用來做到這一點,我當然想聽到它。

我知道我還沒有完全回答你的問題,但我希望這可以幫助。

相關問題