如何在mfc代码中单击关系文件时获取文件名?
现在,我创建了与文件和执行应用程序的文件关系,
当我点击关系文件将打开应用程序,但我无法获取文件名。
我可以用什么方法获取文件名,哪个函数哪个变量来获取文件名
另一个例子,使用OndropFile,DragQueryFile将得到 文件名保存在strFilePath变量中,如下代码所示;
但我需要点击文件方法,而不是dropfile。
我的申请是MDI。
void CTerchy_CurveViewView::OnDropFiles(HDROP hDropInfo)
{
CString strPath;
WCHAR strFilePath[MAX_PATH];
::DragQueryFile(hDropInfo, 0, strFilePath, sizeof(strFilePath));
strPath = strFilePath;
if(strPath.Right(4) == _T(".GRP") || strPath.Right(4) == _T(".grp") ||
strPath.Right(5) == _T(".7215") || strPath.Right(5) == _T(".8103"))
{
文件关系设置:
Command: Executing application
Description: None
Extensions:GRP
MIME:"%1"
我找到一个讨论文件关系的网站:File Associations In Visual Studio
" Arguments"的默认值是"%1",这意味着传递完整路径 和文件名到您的应用程序。
如何获取文件名?
答案 0 :(得分:0)
对于SDI,您可以在命令行中获取文件名。在标准应用程序中,您可以使用CCommandLine。文件名存储在那里。
对于MDI应用程序,使用DDE接口,内部框架工作通过DDE打开文件。开放文档
答案 1 :(得分:0)
与MFC CDocument
对象关联的文件名可通过CDocument::GetPathName
答案 2 :(得分:0)
好的,谢谢大家,获取文件名的方法,应用程序已经实现, 打开MyAppView.cpp
// 剖析標準 Shell 命令、DDE、檔案開啟舊檔的命令列
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
/* 檔案關聯開啟的檔名 */
strRelationFile = cmdInfo.m_strFileName;
我明白了。