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;
    }
  • 相关阅读:
    锋利的jQuery(第二版)源码下载地址
    sql(SqlServer)编程基本语法
    struts2 中请求转发与请求重定向方法
    struts2的DevMode(开发模式)模式
    ML—朴素贝叶斯
    python 全排列
    简单读懂人工智能:机器学习与深度学习是什么关系
    Postfix接收邮件后转向运行特定的脚本
    Android的View和ViewGroup分析
    简明 状态模式(5.8)
  • 原文地址:https://www.cnblogs.com/whzym111/p/6224828.html
Copyright © 2011-2022 走看看