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

thi*_*tie 1 c c++ windows glfw

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

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

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

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

因此,如果您可以指导我使用正确的API和简要的方法/想法如何做到这一点以及如何工作

谢谢

Rot*_*tem 6

由于您使用的是GLFW,为什么不在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]);
}
Run Code Online (Sandbox Code Playgroud)

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