2010-12-10 55 views
0

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

另外我觉得光标应该在拖动时更改。

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

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

回答

0
  1. 拖动图像:

    如果它是一个标准的按钮控件,那么你应该能够使用WM_PRINTWM_PRINTCLIENT问它自己绘制到GDI HDC(即成位图,你再使用作为拖动图像)。

    请注意,并非所有控件都支持这些消息,其中一些控件支持它们的方式稍有不同。有时你必须尝试一下或者为不同的控件设置自定义的代码路径。

    另一种方法是使用视觉样式(主题)API自己绘制按钮,在禁用主题时使用DrawFrameControl。但是如果你不需要它,比使用WM_PRINT/WM_PRINTCLIENT更乏味。

  2. 光标:

    要看是何种操作是干什么的,真的。请注意,如果需要,您可以使用shell拖动对象免费获取副本并移动光标。不过,有时使用自定义光标是有意义的。