gpt4 book ai didi

c++ - MFC:类似于 Windows Explorer 的应用程序,用于与其主线程并行导出文件

转载 作者:行者123 更新时间:2023-11-28 05:41:28 30 4
gpt4 key购买 nike

真正专家的问题:OLE 目标上的粘贴操作如何导致 OLE 源开始提供数据?

我正在创建一个基于 MFC 的类似 Windows 资源管理器的应用程序,用于从/向某个地方复制/剪切/粘贴虚拟文件(使用拖放和 OLE 剪贴板)。我现在遇到的问题是如何使文件的导出与主窗口线程并行。如前所述,它是一个 MFC 应用程序,因此我在 COleDataSource::OnRenderFileData 函数中导出虚拟文件内容。这个函数在应用程序中没有被显式调用,而是被主窗口线程调用。我深入研究了它,发现 MFC 处理由文档的 OnCmdMsg 函数处理的特定命令 (CN_COMMAND) - 这解释了主线程如何调用 OnRenderFileData

但是当我在使用旧版(但免费)MFC4.2 开发 VS2010 Express 版本时,我无法找到 MFC 主线程接收(来自 COM?)和处理某些神奇消息的位置。我想覆盖这一点,使虚拟文件与应用程序的主线程并行导出。

非常感谢任何建议

托马斯

最佳答案

您所说的“神奇”消息是 WM_RENDERFORMAT,它被发送给请求延迟呈现的剪贴板所有者。

我相信您应该调用 SetClipboardData() BEFORE 从该消息处理程序返回,所以我看不到另一个线程如何工作;调用者将在他的 SendMessage(..., WM_RENDERFORMAT, ...) 返回后立即尝试访问剪贴板上的数据。

附言您使用 Express 版本有什么原因吗?新版本的 Visual Studio(2013 和 2015)在 Community Edition 中可用,可免费用于实验和教育用途,其中一些。它还包括现代版本的 MFC。

关于c++ - MFC:类似于 Windows Explorer 的应用程序,用于与其主线程并行导出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37004303/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com