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;
    }
  • 相关阅读:
    线程join
    java线程 WaitAndNotify
    java线程死锁
    多线程并发的3个特性
    常用字符串搜索算法介绍
    [原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法
    [原创]字符串多模匹配算法之AC自动机理解心得
    客户端javascript访问服务器控件的方法
    [总结]C++实现一个限制对象实例个数的类
    [原创]我的北大ACM POJ1001解答
  • 原文地址:https://www.cnblogs.com/whzym111/p/6224828.html
Copyright © 2011-2022 走看看