Windows:打开命名文档

时间:2014-05-18 22:45:45

标签: c++ winapi

我正在尝试扩展名为Drax的现有应用程序,该应用程序编辑MP4电影文件的元数据。我希望能够将文件拖放到它上面,但它不支持。我已经足够远,能够在删除时解码“剪贴板”数据,并过滤以仅接受我可以处理的文件(扩展名)。 (Like so但我知道没有winapi / C ++,所以它都是货物剔除的。)

但是现在我想触发打开文档,我在TCHAR中有(文件)名称。而且我被困住了。当我从拖放操作中知道文件的名称时,如何触发文件>打开对话框的相同操作?

1 个答案:

答案 0 :(得分:1)

通常,文件 - >打开对话框不执行任何,但允许用户选择文件名。然后它将这个文件名返回给你,程序员,用它做什么。

但是,在这种情况下,您要修改现有的应用程序,以便已经编写了代码。要找到它,您需要搜索显示文件的方法 - >打开对话框。查看他们对“打开”对话框返回的文件名执行的操作。

打开文件的所有逻辑很可能被塞进与显示文件的方法相同的方法 - >打开对话框。如果是这样,我会做的是重构代码,以便你有一个单独的方法,如

void OpenFile(CString pszFileName, /* other important parameters */)
{
    // ...
}

用于处理打开文件,由包含其完整路径的字符串指定。从File - >获取文件名后,您将调用此方法。从其他地方打开对话框和 ,就像从拖放操作中获取文件名一样。