在 MFC 中,CWnd::OnQueryDragIcon 是一个受保护的虚拟方法,通常用于响应 WM_QUERYDRAGICON 消息。当窗口接收到该消息时,系统会调用 OnQueryDragIcon 方法,允许窗口提供一个图标,用于拖拽操作。

以下是一个简单的示例,演示如何在自定义的窗口类中重写 OnQueryDragIcon 方法:
class CMyWnd : public CWnd
{
public:
    // 构造函数和其他成员函数的声明

protected:
    // 重写 OnQueryDragIcon 方法
    afx_msg HICON OnQueryDragIcon()
    {
        // 在这里提供用于拖拽的图标
        // 返回 HICON 对象,可以通过 AfxGetApp()->LoadIcon() 或其他方式加载图标

        HICON hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
        return hIcon;
    }

    // 其他成员变量和函数的声明

    DECLARE_MESSAGE_MAP()
};

在这个例子中,CMyWnd 是一个自定义的窗口类,它继承自 CWnd。我们通过 DECLARE_MESSAGE_MAP() 宏声明了消息映射表,并在实现文件中使用 BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 宏进行消息映射的定义。

OnQueryDragIcon 方法用于提供拖拽操作中使用的图标。在示例中,我们通过 AfxGetApp()->LoadIcon(IDR_MAINFRAME) 加载了应用程序的主图标,并返回该图标的句柄。

需要注意,OnQueryDragIcon 方法的声明中使用了 afx_msg 宏。


转载请注明出处:http://www.pingtaimeng.com/article/detail/23666/MFC/CWnd