无法在 mfc 对话框中删除文件

Posted

技术标签:

【中文标题】无法在 mfc 对话框中删除文件【英文标题】:Can't get file dropping to work in mfc dialog 【发布时间】:2011-11-11 10:49:56 【问题描述】:

我有一个基于 CDialog 的简单 mfc 项目。我还有一个名为 CDroppable 的类,它继承自 CStatic,并添加了 OnDropFiles() 函数。

我所做的是在我的对话框中添加一个普通的 CStatic,添加一个控制变量,然后将对话框的 .h 文件中的控制变量更改为 CDroppable 而不是 CStatic(我认为这是相当标准的) .我还将 CStatic 的 Accept Files 行为修改为 true。

在我看来,这应该意味着如果我将一个文件拖到接受窗口之外的任何地方的对话框上,我应该会看到“无效”图标,而在接受窗口内我应该能够删除它。这至少是它在 VS2005 中的工作方式。 但是现在在 VS2010 中我无法让它工作。整个应用程序显示无效的拖动图标。我可以在对话框本身上设置接受文件,它会正确接受文件,但我不希望整个对话框接受文件,我希望 CDroppable 接受文件。

我错过了一些明显的东西来激活吗?某些设置需要更改?

MFC,让简单的事情变得不可能(tm)

【问题讨论】:

我自己发现了问题所在,但我无法发布答案并在另外 8 小时内关闭此问题...数字。 【参考方案1】:

其实我发现了问题所在。

我在可放置区域周围有一个组框来指示它的位置。这显然是一个愚蠢的想法,因为即使我已将其设置为透明,我认为这已经足够了,但它仍然妨碍了可放置区域。我不得不将它设置为禁用,然后它神奇地工作了。

抱歉耽误您的时间。

【讨论】:

以上是关于无法在 mfc 对话框中删除文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MFC CDialog 类中自动删除事件处理程序?

从 MFC 对话项目中删除 QAT 资源?

MFC 通过资源文件添加ToolBar

MFC 通过资源文件添加ToolBar

VS 2008 MFC - 删除 MFC 处理程序

如何删除权限不足不能删除文件