知识点:
获取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打开外部文件的更多相关文章

  1. 使用ShellExecute打开目标文件所在文件夹并选中目标文件

    转载:http://blog.csdn.net/chenlycly/article/details/7366364 转载:http://bbs.csdn.net/topics/50440550 She ...

  2. Android应用打开外部文件

    我们有时候遇到要打开一个文件,我们可以选择用其他应用打开,这时弹出来的应用列表,那么我们如何让自己开发的应用也能出现在里面呢? 第一步:设置启动Activity的intent-filter,给data ...

  3. ShellExecute打开文件,打开文件夹的用法

    转自https://www.cnblogs.com/nxopen2018/p/11070031.html //方法1 //转换 //char msg[256]; //sprintf_s(msg, &q ...

  4. ShellExecute打开文件打开文件夹的用法

    1 #include <uf.h> 2 #include <uf_part.h> 3 #include <atlstr.h> 4 #include <iost ...

  5. MFC 打开外部EXE文件的三种方法

    目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了<vc中调用其他应用程序的方法(函数) winexec,shellexecute , ...

  6. WinAPI: ShellExecute - 打开外部程序或文件

    WinAPI: ShellExecute - 打开外部程序或文件 ShellExecute(   hWnd: HWND;        {指定父窗口句柄}   Operation: PChar;  { ...

  7. Android打开外部DB文件

    DB文件要放在Assets文件夹下,封装一个工具类,如下: package com.XX.DB; import java.io.File; import java.io.FileOutputStrea ...

  8. 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 ...

  9. MFC打开/保存文件对话框:CFileDialog

    MFC打开/保存文件对话框:CFileDialog CFileDialog   文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDial ...

随机推荐

  1. 【Java入门提高篇】Day12 Java代理——Cglib动态代理

    今天来介绍另一种更为强大的代理——Cglib动态代理. 什么是Cglib动态代理? 我们先回顾一下上一篇的jdk动态代理,jdk动态代理是通过接口来在运行时动态创建委托类的代理对象,但是跟静态代理一样 ...

  2. 【SPL标准库专题(1)】 SPL简介

    什么是SPL SPL是Standard PHP Library(PHP标准库)的缩写. 根据官方定义,它是"a collection of interfaces and classes th ...

  3. 为notifyIcon.icon属性赋图片

    System.Drawing.Bitmap bp; bp = new Bitmap(Application.StartupPath + @"\image\" + MeiYeShuo ...

  4. Oracle EBS INV 获取现有量等值

    DECLARE L_api_return_status VARCHAR2(1); l_qty_oh NUMBER; l_qty_res_oh NUMBER; l_qty_res NUMBER; l_q ...

  5. Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc

    sysstat Sysstat的工具集sar. iostat.mpstat.sadf.sar.sadc * iostat 工具提供CPU使用率及硬盘吞吐效率的数据: * mpstat 工具提供单个处理 ...

  6. .NET实现自动编译

    前言 因每次发布版本的时候,都需要打开vs项目,然后进行编译.如果刚好手里有文件在修改,就需要先签入之类的.所以想找个可以实现自动编译的工具. 在网上查询了不少资料,终于基本上实现了自动编译的功能.因 ...

  7. 50家硅谷IT公司技术博客

    分享一下 50 家硅谷优秀 IT 公司技术博客,从中可以了解企业文化,技术特色和设计语言,如果直接列出来很单调,加上点评,算吐槽版吧. 知名大厂   1. Facebook https://www.f ...

  8. 安全之路 —— 利用SVCHost.exe系统服务实现后门自启动

    简介 在Windows系统中有一个系统服务控制器,叫做SVCHost.exe,它可以用来管理系统的多组服务.它与普通的服务控制不同的是它采用dll导出的ServiceMain主函数实现服务运行,详细原 ...

  9. MySQL基础之 LIKE操作符

    LIKE操作符 作用:用于在WHERE子句中搜索列中的指定模式. 语法:SELECT  COLUMN_NAME  FROM  TABLE_NAME  WHERE  COLUMN_NAME  LIKE ...

  10. C#中的事件(event)处理机制

    委托 语法 [访问修饰符] delegate 返回类型 委托名(); 委托的特点 类似于C++函数指针,但它是类型安全的:委托允许将方法作为参数进行传递:委托可用于定义回调方法:委托可以链接在一起:如 ...