zoukankan      html  css  js  c++  java
  • 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,0); //获取文件名
            TRACE("%ws 
    ",ws);
            CString filepath;
            filepath=L"C:\Windows\";
            ws=filepath+ws; //算出文件路径
            ShellExecute(0,L"open",ws,NULL,NULL,SW_SHOW); //打开文件
    
        }
         
        *pResult = 0;
    }
    //////////////////////////
    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,0);
            filename=FileDir+filename;
            TRACE("%ws 
    ",filename);
            ShellExecuteW(0,NULL,filename,NULL,NULL,SW_SHOWNORMAL);
        }
    
        *pResult = 0;
    }
  • 相关阅读:
    对一些ArcGIS for JS的API的一些理解
    C#中的正则表达式
    IHttpModule接口
    ArcGIS Engine 获取图层中的选择要素的函数封装
    Master Nginx(5)
    python and or的理解规则
    python中try except处理程序异常的三种常用方法
    Python操作excel的几种方式--xlrd、xlwt、openpyxl
    raw_input 和input 区别
    json -- dump load dumps loads 简单对比
  • 原文地址:https://www.cnblogs.com/whzym111/p/6224828.html
Copyright © 2011-2022 走看看