在MFC对话框中拖放
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MFC对话框中拖放相关的知识,希望对你有一定的参考价值。
我正试图在运行时以编程方式 "包装 "在 MFC 对话框内的属性页上的控件中添加拖放功能。这种 "包装 "包括将属性页实例化为对话框的一个成员,然后调整其大小,并将其定位到对话框中.rc文件中的图片控件的尺寸。我不知道为什么要这样做,除了为了规范应用程序中属性页的外观之外,但无论如何,我最终会得到这样一个复杂的窗口层次结构,一个控件在属性页中,一个图片控件在对话框中。
我想接受拖动文件的控件有以下功能 DragAcceptFiles
但我认为 WM_DROPFILES
控件的消息在到达控件之前就被丢弃了,因为其中一个父窗口不接受拖动的文件。我考虑过调用 DragAcceptFiles
在所有的父母身上,并通过 WM_DROPFILES
但我不想这样做,因为它们没有接受文件的处理程序,而且会显示图标,表明文件可以丢在它们上面。
有什么办法可以帮助我解决这个问题吗?WM_DROPFILES
消息到我的控件将非常感激。
答案
在父级中,实现对虚拟的 CDialog::PreTranslateMessage(MSG* pMsg)
这让你有机会看到 WM_DROPFILES
消息,并将它们重定向到属性页中的处理程序。
另一答案
最后,我通过调用 CWnd::BringWindowToTop()来解决这个问题,在我想要拖动文件的控件上和控件所在的对话框上都调用了 CWnd::BringWindowToTop()。
以上是关于在MFC对话框中拖放的主要内容,如果未能解决你的问题,请参考以下文章