MFC 用ShellExecute打开外部文件
知识点:
获取CListCtrl选中文本
用ShellExecute打开外部文件 一、CListCtrl::GetFirstSelectedItemPosition
CListCtrl::GetFirstSelectedItemPosition
POSITION GetFirstSelectedItemPosition( ) const;
//返回选中项目的位置
二、CListCtrl::GetNextSelectedItem
CListCtrl::GetNextSelectedItem
int GetNextSelectedItem( POSITION& pos ) const;
//返回选中项目的索引值 三、ShellExecute函数
HINSTANCE ShellExecute(
HWND hwnd, //指定父窗口句柄,此参数可为NULL
LPCTSTR lpOperation, //操作方式
LPCTSTR lpFile, //要打开的文件名,一般是全路径的如 c:\\1.txt
LPCTSTR lpParameters, //要带的参数
LPCTSTR lpDirectory,//默认运行目录
INT nShowCmd //显示方式
); 四、代码示例
void CDialog_ListCtrl_Test::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
{ LPNMITEMACTIVATE pNMItemActivate = (LPNMITEMACTIVATE)(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
CListCtrl* plst_ctl=(CListCtrl*)GetDlgItem(IDC_LIST1);
POSITION pos=plst_ctl->GetFirstSelectedItemPosition();
if (pos)
{
int item=plst_ctl->GetNextSelectedItem(pos);
CString ws=plst_ctl->GetItemText(item,); //获取文件名
TRACE("%ws \n",ws);
CString filepath;
filepath=L"C:\\Windows\\";
ws=filepath+ws; //算出文件路径
ShellExecute(,L"open",ws,NULL,NULL,SW_SHOW); //打开文件 } *pResult = ;
}
//////////////////////////
void CDialog_ListCtrl_Test::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = (LPNMITEMACTIVATE)(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
//获取文件目录路径及文件
CListCtrl* plst_ctl=(CListCtrl*)GetDlgItem(IDC_LIST1);
//获取ListCtrl选中项的位置
POSITION pos=plst_ctl->GetFirstSelectedItemPosition();
if (pos)
{
int item_index=plst_ctl->GetNextSelectedItem(pos);
//获取选中图标的文件名
CString filename=plst_ctl->GetItemText(item_index,);
filename=FileDir+filename;
TRACE("%ws \n",filename);
ShellExecuteW(,NULL,filename,NULL,NULL,SW_SHOWNORMAL);
} *pResult = ;
}
MFC 用ShellExecute打开外部文件的更多相关文章
- 使用ShellExecute打开目标文件所在文件夹并选中目标文件
转载:http://blog.csdn.net/chenlycly/article/details/7366364 转载:http://bbs.csdn.net/topics/50440550 She ...
- Android应用打开外部文件
我们有时候遇到要打开一个文件,我们可以选择用其他应用打开,这时弹出来的应用列表,那么我们如何让自己开发的应用也能出现在里面呢? 第一步:设置启动Activity的intent-filter,给data ...
- ShellExecute打开文件,打开文件夹的用法
转自https://www.cnblogs.com/nxopen2018/p/11070031.html //方法1 //转换 //char msg[256]; //sprintf_s(msg, &q ...
- ShellExecute打开文件打开文件夹的用法
1 #include <uf.h> 2 #include <uf_part.h> 3 #include <atlstr.h> 4 #include <iost ...
- MFC 打开外部EXE文件的三种方法
目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了<vc中调用其他应用程序的方法(函数) winexec,shellexecute , ...
- WinAPI: ShellExecute - 打开外部程序或文件
WinAPI: ShellExecute - 打开外部程序或文件 ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; { ...
- Android打开外部DB文件
DB文件要放在Assets文件夹下,封装一个工具类,如下: package com.XX.DB; import java.io.File; import java.io.FileOutputStrea ...
- VS2012与VS2015同时安装用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No such file or directory”的解决办法
在WIndows 7操作系统上同时安装VS2012与VS2015并用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No ...
- MFC打开/保存文件对话框:CFileDialog
MFC打开/保存文件对话框:CFileDialog CFileDialog 文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDial ...
随机推荐
- cuda中用cublas库做矩阵乘法
这里矩阵C=A*B,原始文档给的公式是C=alpha*A*B+beta*C,所以这里alpha=1,beta=0. 主要使用cublasSgemm这个函数,这个函数的第二个参数有三种类型,这里CUBL ...
- linq not in
linq not in 查询 or join not in var query = from c in _opvRepository.Table join a in _orderRepository. ...
- 从PFX文件中获取私钥、公钥证书、公钥
https://blog.csdn.net/ZuoYanYouYan/article/details/77868584 该类具体功能:根据pfx证书得到私钥.根据私钥字节数组获取私钥对象.根据公钥字节 ...
- javascript模块导入导出
第一次知道javascript有模块的概念通常都是使用<script>标签进行引入,不过只能在html文件上使用 增加的模块就如同php里的include.require可以使用引入的内容 ...
- TiDB数据库 mydumper命令导出数据报错:(mydumper:1908): CRITICAL **: Couldn't acquire global lock, snapshots will not be consistent: Access denied for user 'super'@'%' (using password: YES)
今天想使用Tidb官方提供的mydumper来备份AWS上的RDS集群中mysql数据库的某个表,发现报错了 [tidb@:xxx /usr/local/tidb-tools]$ -t -F -B x ...
- 记录使用git submodule时踩的坑
在使用git子模块的时候踩了一个坑 在使用git submodule updata --init --recursive命令,即递归更新子模块并初始化时碰到了一个问题: 经过一段不短时间的排查,发现问 ...
- U-Mail:如何实现EDM的个性化和定制化?
设想一下,一个上班族一天要接到多少垃圾邮件?据媒体报道,目前来往的邮件中,高达95%以上的是垃圾邮件,而且有些垃圾邮件还会故意占据着邮箱的最前列.同时,随着人们接受资讯越来越快捷便利,渠道越来越多,也 ...
- 2.Linux环境下配置Solr4.10.3
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.准备阶段 操作系统:CentOS 6.8 安装包:/home/test solr-4.10.3.tgz.t ...
- MetaMask/zero-client
https://github.com/MetaMask/zero-client MetaMask ZeroClient and backing iframe service architecture ...
- 记一次MyBatis的错误
错误信息:java.lang.StackOverflowError 关于这个错误的深度解析,大家可以参考这篇博文,比较详细:https://blog.csdn.net/zc375039901/arti ...