我正在Windows应用程序上实现拖放按钮。在拖动时我想显示一些拖动效果。我认为按钮的图像适合在拖动过程中显示。
另外我认为在拖动过程中应该更改光标。
我的怀疑是: 如何在拖动时捕获按钮和显示的图像。 拖动过程中应显示哪种类型的光标。
应用程序使用C ++,win32。
答案 0 :(得分:0)
拖动图片:
如果它是一个标准的按钮控件,那么你应该可以使用WM_PRINT或WM_PRINTCLIENT来让它自己绘制到GDI HDC(也就是你用作拖动的位图) - 图像)。
请注意,并非所有控件都支持这些消息,并且其中一些控件以稍微不同的方式支持它们。有时您需要进行一些实验或为不同的控件设置自定义代码路径。
另一种方法是使用视觉样式(主题)API自己绘制按钮,并在DrawFrameControl上使用后备来禁用主题。但是如果你不需要它,那比使用WM_PRINT / WM_PRINTCLIENT要繁琐得多。
光标:
真的,取决于手术的作用。请注意,如果需要,可以使用shell拖动对象免费获取副本和移动游标。但有时使用自定义光标是有意义的。