如何将某些内容拖放到静态控件中?看起来我需要创建一个COleDropTarget的子类,并将其作为自定义CStatic中的成员变量包含在内。但这似乎并没有起作用。当我尝试将某些东西拖到静态控件上时,我得到了拒绝光标。
答案 0 :(得分:2)
当您调用m_hWnd
时,静态控件的COleDropTarget::Register
必须有效,这就是为什么它在CMyStatic
构造函数中不起作用的原因。您可以做的是覆盖CWnd::PreSubclassWindow
班级中的CMyStatic
:
class CMyStatic : public CStatic {
...
virtual void PreSubclassWindow();
};
void CMyStatic::PreSubclassWindow()
{
CStatic::PreSubclassWindow();
m_MyDropTarget.Register(this);
}
CodeProject上有一篇非常好的文章here,您可能会觉得有用。
答案 1 :(得分:1)
除了PreSubClassWindow()之外,还必须将CStatic控件设置为在其资源参数中设置Notify标志。否则控件将不会让应用程序知道鼠标移动,因此不会触发OnDragEnter()方法。