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;
    }
  • 相关阅读:
    KSTORE日常工作遇到问题总结
    调用bat文件执行java文件
    腾讯课堂十大Excel函数
    《将博客搬至CSDN》
    oracle 累加功能,累加百分比
    验证身份证是否合法
    远程登录修改密码
    二叉树的遍历
    nginx启动、重启、关闭
    状态模式-State-订单状态
  • 原文地址:https://www.cnblogs.com/whzym111/p/6224828.html
Copyright © 2011-2022 走看看