CHeaderCtrl 类的 CreateDragImage 方法是用于创建一个拖动图像的公共方法。该方法用于在列标题控件上启动拖放操作时创建一个图像,以便在拖放时显示。

以下是 CreateDragImage 方法的基本形式:
CImageList* CreateDragImage(int nIndex, LPPOINT lpPoint);

  •  nIndex:表示要拖动的列的索引。

  •  lpPoint:表示拖动操作开始的鼠标位置。


该方法返回一个指向 CImageList 对象的指针,该对象包含拖动图像。如果创建失败,返回值为 NULL。

以下是一个简单的示例,演示如何使用 CreateDragImage 方法创建拖动图像:
CHeaderCtrl m_HeaderCtrl;
// 假设 m_HeaderCtrl 已经被创建和初始化

int nIndex = 1; // 要拖动的列的索引
POINT pt; // 拖动开始的鼠标位置
GetCursorPos(&pt);
m_HeaderCtrl.ScreenToClient(&pt);

CImageList* pDragImage = m_HeaderCtrl.CreateDragImage(nIndex, &pt);

if (pDragImage != NULL)
{
    // 在此可以使用 pDragImage 进行拖动操作

    // 最后记得销毁拖动图像
    pDragImage->DeleteImageList();
    delete pDragImage;
}

在此示例中,我们假设 m_HeaderCtrl 已经被创建和初始化,并且我们希望拖动第二列。我们获取鼠标位置,并通过调用 CreateDragImage 创建拖动图像。最后,我们在使用完拖动图像后要确保销毁它,以避免内存泄漏。


转载请注明出处:http://www.zyzy.cn/article/detail/18068/MFC/CHeaderCtrl