2010-12-10 57 views
0

我正在實現對windows應用程序的拖放按鈕。在拖動時,我想顯示一些拖動效果。我認爲按鈕的圖像適合在拖動過程中顯示。要拖動時要顯示的圖像

另外我覺得光標應該在拖動時更改。

我的疑惑是: 如何捕捉按鈕的圖像和拖動時顯示。 在拖動過程中應該顯示哪種類型的光標。

應用程序是在C++,win32中。

回答

0
  1. 拖動圖像:

    如果它是一個標準的按鈕控件,那麼你應該能夠使用WM_PRINTWM_PRINTCLIENT問它自己繪製到GDI HDC(即成位圖,你再使用作爲拖動圖像)。

    請注意,並非所有控件都支持這些消息,其中一些控件支持它們的方式稍有不同。有時你必須嘗試一下或者爲不同的控件設置自定義的代碼路徑。

    另一種方法是使用視覺樣式(主題)API自己繪製按鈕,在禁用主題時使用DrawFrameControl。但是如果你不需要它,比使用WM_PRINT/WM_PRINTCLIENT更乏味。

  2. 光標:

    要看是何種操作是幹什麼的,真的。請注意,如果需要,您可以使用shell拖動對象免費獲取副本並移動光標。不過,有時使用自定義光標是有意義的。