选择从Windows将文件拖放到GLFW应用程序中

时间:2015-12-06 06:45:16

标签: c++ c windows glfw

所以基本上我有兴趣知道我需要知道哪个Windows api才能在Windows中用鼠标选择文件并将其拖放到我的应用程序窗口

我的申请窗口将由GLFW处理,它基本上处理图像格式,但这并不重要

我有兴趣了解如何在Windows中执行此操作

基本上我有一个想法,我必须引用Windows API,并利用它们的一些功能/方法,并通过一些管道将文件从Windows应用程序移植到我的应用程序

所以,如果你能引导我找到正确的API和一个简短的方法/想法如何做到这一点以及如何运作

由于

2 个答案:

答案 0 :(得分:5)

由于您使用的是GLFW,为什么不使用native method处理拖动& GLFW下降?

  

如果您希望接收窗口中放置的文件和/或目录的路径,请设置文件删除回调。

     

glfwSetDropCallback(window, drop_callback);

     

回调函数接收编码为UTF-8的路径数组。

void drop_callback(GLFWwindow* window, int count, const char** paths)
{
int i;
for (i = 0;  i < count;  i++)
    handle_dropped_file(paths[i]);
}
     

路径数组及其字符串仅在文件删除回调返回之前有效,因为它们可能是专门为该事件生成的。如果要保留路径,则需要制作数组的深层副本。

答案 1 :(得分:1)

您只需要处理WM_DROPFILES消息。

为了接收你应该在你的窗口上调用DragAcceptFiles来启用它作为D&amp; D目标。