2011-05-27 29 views
0

我想要一個窗體,它有幾個控件作爲位圖上的透明覆蓋圖。此位圖受制於變換矩陣(滾動縮放&)。我試圖獲得與GoogleMaps類似的外觀,當背景圖像平移/縮放時,控件不會移動。透明覆蓋圖不會與其父項一起滾動

我試過在我的OnPaint中模仿這個。但是,當窗口滾動時,只有新暴露的區域失效,因此我的控件不會重新繪製。

我試圖計算舊控件的位置,使該區域失效,並且使它應該出現的區域失效。當我這樣做時,它會閃爍,而且您仍然可以看到滾動的圖像。

我試着把ButtonControl放在我的顯示窗口上。但是,它始終與其父控件一起滾動。我嘗試捕獲滾動事件,然後調整ButtonControl的位置。這也有延遲更新效果,所以看起來不太好。

任何想法將不勝感激。

回答

0

不幸的是,由於自動滾動機制設置了它的位置,所以你得到閃爍,然後你恢復它。結果是兩個消息被髮送到按鈕。

將位圖和滾動邏輯放入單獨的控件中,以填充整個表單。這意味着您的位圖控件和按鈕都是窗體的子控件。

或者,你自己畫按鈕。您當然需要做一些工作來讓它響應鼠標點擊等。ControlPaint類有一些方法可以幫助您模仿Windows控件的外觀。