【发布时间】:2014-02-16 04:31:31
【问题描述】:
首先,澄清一下,我不是询问如何将文件拖放到 exe 的图标上。我想知道如何处理拖放到已经运行 win32 控制台应用程序。我也不询问如何通过 Windows 消息泵处理基于 WinMain 的应用程序内部的拖放。我想在一个入口点 int main() 的程序内部执行此操作,该入口点没有 WndProc(还)或任何东西。
也就是说,我想知道我的目标是否可以实现(并希望它可以实现)。
我有一个在控制台窗口中运行的服务器应用程序。由于庞大的代码库和许多奇怪的耦合,它是一个用于所有密集目的的“仅输出”控制台。尽管如此,我仍然可以处理诸如按键之类的事情,因为我有一个更新循环滴答作响。我希望能够将充满命令(使用自定义语法)的文件拖放到我正在运行的应用程序上并让它处理它们。
这可能吗?我在想我可能会得到一个指向控制台的 HWND 的指针(希望是一个东西?),然后可能子类化该窗口以使用自定义 WndProc 来侦听 WM_DROPFILES 消息。
我从未真正尝试在 int main() 程序而不是 WinMain 程序中设置对 Windows 消息的处理,但我希望它以某种方式可能。
任何帮助将不胜感激! 奇怪的解决方案很好。
【问题讨论】:
标签: c++ winapi drag-and-drop console-application