拖动时显示的图像

时间:2010-12-10 08:32:39

标签: c++ winapi drag-and-drop

我正在Windows应用程序上实现拖放按钮。在拖动时我想显示一些拖动效果。我认为按钮的图像适合在拖动过程中显示。

另外我认为在拖动过程中应该更改光标。

我的怀疑是: 如何在拖动时捕获按钮和显示的图像。 拖动过程中应显示哪种类型的光标。

应用程序使用C ++,win32。

1 个答案:

答案 0 :(得分:0)

  1. 拖动图片:

    如果它是一个标准的按钮控件,那么你应该可以使用WM_PRINTWM_PRINTCLIENT来让它自己绘制到GDI HDC(也就是你用作拖动的位图) - 图像)。

    请注意,并非所有控件都支持这些消息,并且其中一些控件以稍微不同的方式支持它们。有时您需要进行一些实验或为不同的控件设置自定义代码路径。

    另一种方法是使用视觉样式(主题)API自己绘制按钮,并在DrawFrameControl上使用后备来禁用主题。但是如果你不需要它,那比使用WM_PRINT / WM_PRINTCLIENT要繁琐得多。

  2. 光标:

    真的,取决于手术的作用。请注意,如果需要,可以使用shell拖动对象免费获取副本和移动游标。但有时使用自定义光标是有意义的。