MFC得到数据库中文件绝对路径,然后点击按钮在电脑上打开此文件,这个怎么实现啊

MFC得到数据库中文件绝对路径,然后点击按钮在电脑上打开此文件,这个怎么实现啊,第1张

在数据库中获取文件路径,一般使用ADO或者ODBC的方式,这个没有具体情况没法细说。

点击按钮打开文件,在按钮响应函数中,使用ShellExecute函数完成即可(还有WinExec和CreateProcess等也可以)

ShellExecute(NULL,"open","获取到的文件绝对路径名",NULL,NULL,SW_SHOWNORMAL);

TCHAR exeFullPath[MAX_PATH]; // MAX_PATH

GetModuleFileName(NULL,exeFullPath,MAX_PATH);//得到程序模块名称,全路径

也就是当前运行程序的全路径

GetModuleFileName函数原型

DWORD GetModuleFileName(

HMODULE hModule, // handle to module。将要得到的模块的句柄。如果是当前模块,NULL

LPTSTR lpFilename, // path buffer 得到的文件名。

DWORD nSize // size of buffer 一般MAX_PATH就可以了

);

BOOL PathRemoveFileSpec( LPTSTR pszPath);

功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。

例:char szpath[257]="c://window//atxt";

调用PathRemoveFileSpec( szpath ) 后,szPath = “c://windows”

需要头文件:shlwapih

这个不是昨天问过了吗?

1、Mat testImage = imread(这是string类型的文件地址);

2、CFileDialog,返回的是CString类型的地址

GetPathName返回的是CString,imread要的是opencv的String(关于这点真得吐槽,c++没有统一的string,包括std:string都没有主导权,太可恶了),你得先把CString转成char再创建成opencv的String

samismiling (回答者) 3小时前

你自己搜索一下“opencv imread Cstring到string”有大量代码可借鉴,我就不给你贴了

1

CString GetCurPath()

{

TCHAR exeFullPath[MAX_PATH];

CString strPath;

GetModuleFileName(AfxGetInstanceHandle(),exeFullPath,MAX_PATH);

strPathFormat("%s", exeFullPath);

if(strPathRight(1)!="\\") strPath += "\\";

return strPath;

}

2CreateDirectory(全路径字符串, NULL);

3

short CleanTmpFiles(CString strImagePath)

{

int nFiles=0;

CFileFind finder;

char tempFileFind[200];

sprintf(tempFileFind, "%s\\jpg", m_strImagePath);

BOOL IsFinded = (BOOL)finderFindFile(tempFileFind);

while(IsFinded)

{

IsFinded = (BOOL)finderFindNextFile();

if(!finderIsDots())

{

char foundFileName[200];

strcpy(foundFileName, finderGetFileName()GetBuffer(200));

if(!finderIsDirectory())

{

char tempFileName[200];

sprintf(tempFileName,"%s%s", strImagePath, foundFileName);

DeleteFile(tempFileName);

nFiles++;

}

}

}

finderClose();

return nFiles;

}

用EnumFontFamiliesEx函数就可以了,示例如下:

LOGFONT lf;

ZeroMemory(&lf,sizeof(LOGFONT));

lflfCharSet = DEFAULT_CHARSET;

_tcscpy(lflfFaceName,TEXT(""));

EnumFontFamiliesEx(pDC->GetSafeHdc(),&lf,(FONTENUMPROC)EnumFontFamiliesProc,(LPARAM)this,0);BOOL CALLBACK CFontCombo::EnumFontFamiliesProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lParam)

{

if(!(nFontType & RASTER_FONTTYPE))

{

// if (lpelf->elfLogFontlfCharSet == ANSI_CHARSET || lpelf->elfLogFontlfCharSet == GB2312_CHARSET)

{

CFontCombo pCombo = (CFontCombo )lParam;

//过滤以@开头的字体,过滤已经添加的字体。

if(lpelf->elfFullName[0] != TEXT('@') && pCombo->FindStringExact(0,(LPCTSTR)lpelf->elfFullName) == LB_ERR)

{

int index = ((CFontCombo )lParam)->AddString((LPCTSTR)lpelf->elfFullName);

LPLOGFONT lpLF = new LOGFONT;

CopyMemory(lpLF,lpelf,sizeof(LOGFONT));

((CFontCombo )lParam)->SetItemData(index,(DWORD)lpLF);

}

}

}

return TRUE;

}

以上就是关于MFC得到数据库中文件绝对路径,然后点击按钮在电脑上打开此文件,这个怎么实现啊全部的内容,包括:MFC得到数据库中文件绝对路径,然后点击按钮在电脑上打开此文件,这个怎么实现啊、MFC中如何获取当前exe(双反斜线)的绝对路径、VC MFC 知道文件的绝对路径求文件夹的路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9628455.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存