zoukankan      html  css  js  c++  java
  • 工作总结:MFC使用Windows自带打开对话框

    代码:

    int nStructSize = 76;  //Win98 as default  
    
    LPARAM lModuleParam = 0;  
    
    TV_INSERTSTRUCT tvItem;  
    
    CString sPathNameSel;  
    
    char   lpszCurrentDir[1024];//1K
    
     ::GetModuleFileName(NULL, lpszCurrentDir, 1024);  //Get current directory   
    
    int n = CString(lpszCurrentDir).ReverseFind('\');
    
     CString sTemp = CString(lpszCurrentDir).Left(n);  
    
    STRCPY(lpszCurrentDir, sTemp);
    
     CString str("", 1024);
    
     /*if (TRUE == bAMT700PrjModify)  
    
    {   
    
     bAMT700PrjModify = FALSE;   
    
    int nAnswer = MxMessageBox(m_hWnd, IDS_SAVEPROJECTORNOT, IDS_CAPTION_NEWPROJECT, MB_YESNO);  
    
     if (IDYES == nAnswer)   
    
    {    
    
    OnBnClickedBtnAmt700PrjSave();   
    
    }
    
     }
    
    */  
    
     CFileDialog mFileDlg( TRUE,   NULL,   NULL,   OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,   "IRIS Files (*.ini)|*.ini||",   this);  //NT does not support  
    
    mFileDlg.m_ofn.lpstrFile = (LPSTR)(LPCTSTR)str;//.GetBuffer(MERGE_MAX_COUNT_OF_FILE_CAN_SELECT); mFileDlg.m_ofn.lpstrTitle = RESID2LPSTR(IDS_BROWSEFORPROJECT);
    
    mFileDlg.m_ofn.lpstrInitialDir = lpszCurrentDir;
    
    DWORD dwVersion = GetVersion();
    
     if (dwVersion < 0x80000000)    //Windows NT/win2000  
    
    {   
    
    nStructSize = 88;
    
     }  
    
    else       //Windows95/98
    
     {   
    
    nStructSize = 76;  
    
    }
    
     mFileDlg.m_ofn.lStructSize = nStructSize;
    
     str.ReleaseBuffer();
    
     if (mFileDlg.DoModal() == IDOK)
    
     {        
    
    POSITION pos = mFileDlg.GetStartPosition();   
    
    while (NULL != pos)  
    
     {   
    
     m_sPrjPathName = mFileDlg.GetNextPathName(pos);   
    
     sPathNameSel = mFileDlg.GetFileName();  
    
     }   
    
    CFileFind finder;   
    
    DWORD dwFindRet;   
    
    dwFindRet = m_sPrjPathName.Find(".ini");   
    
    if (0xffffffff == dwFindRet)  
    
     {   
    
     m_sPrjPathName += ".ini";
    
      }  
    
     dwFindRet = sPathNameSel.Find(".ini");  
    
     if (0xffffffff == dwFindRet)   
    
    {   
    
     sPathNameSel += ".ini";
    
     }
    
      if (!finder.FindFile(m_sPrjPathName))  
    
     {   
    
     MxMessageBox(m_hWnd, IDS_PROJECTNOTEXITS, IDS_CAPTION_OPENPROJECT, MB_ICONERROR);    
    
    m_sPrjPathName.Empty();    
    
    return;   
    
    }  
    
     sPathNameSel = sPathNameSel.Left(sPathNameSel.GetLength() - strlen(".ini"));
    
      g_prjAMT700.Release();
    
      /*m_treePrj.DeleteAllItems();   
    
    m_dlgModule.m_nModuleCount = 0;  
    
     m_dlgModule.m_bMethod = 1; //add   m_dlgAddr.ShowWindow(SW_HIDE);
    
      m_dlgModule.ShowWindow(SW_SHOW);*/
    
      //CButton * pBtn = (CButton *)GetDlgItem(IDC_RAD_AMT700_MODULE);  
    
     //pBtn->ShowWindow(SW_SHOW);   //pBtn->SetCheck(1);   
    
    //pBtn = (CButton *)GetDlgItem(IDC_RAD_AMT700_ADDR);  
    
     //pBtn->ShowWindow(SW_SHOW);
    
      tvItem.hParent = TVI_ROOT;  
    
     tvItem.hInsertAfter = TVI_ROOT;
    
      // tvItem.item.iImage = nImage;   
    
    // tvItem.item.iSelectedImage = nImage;  
    
     tvItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT | TVIF_PARAM;  
    
     tvItem.item.pszText = CSTRING_TO_LPSTR sPathNameSel;  
    
     tvItem.item.lParam = MAKELPARAM(g_prjAMT700.GetModuleCount(), MAKEWORD(1/*PRJ*/, 0));//Prj  
    
     //m_hPrj = m_treePrj.InsertItem(&tvItem);   
    
    //m_treePrj.SelectItem(m_hPrj);   
    
    //if (AMT700_VERSION == iAMTVer)  
    
     //{  
    
     // g_prjAMT700.LoadProject(m_sPrjPathName);
    
      // for (int i = 0; i < g_prjAMT700.GetModuleCount(); i++)   
    
    // {   
    
    //  CModule700 * pTmpModule = g_prjAMT700.GetModuleAt(i);  
    
     //  lModuleParam = MAKELPARAM(i, MAKEWORD(2/*Module*/, 0));
    
      //  HTREEITEM hItem = AddModuleItem(m_hPrj, *pTmpModule, lModuleParam);  
    
     //  m_dlgModule.m_nModuleCount++;
    
      //  for (int j = 0; j < pTmpModule->GetAddrCount(); j++)  
    
     //  {   //   CAddr700 pTmpAddr;
    
      //   pTmpModule->GetAddrAtEx(j, &pTmpAddr);   
    
    //   AddAddrItem(hItem, pTmpAddr, MAKELPARAM(j, MAKEWORD(3, 0)));
    
      //  }
    
      // }
    
      //}
    
     }
  • 相关阅读:
    html+css二级导航的实现
    html+css实现图片或元素的垂直、水平同时居中的多种方法(定位)
    css元素类型以及类型之间的转换
    css文本(超出)溢出显示省略号
    用css实现一个三角形
    css选择符权重,css层叠性
    css 外部样式link和@import区别及用法
    css3-伪类选择器(符)、伪元素详解
    Rabbitmq安装
    谷粒商城SpringCache缓存(二十九)
  • 原文地址:https://www.cnblogs.com/CocoWang/p/3639287.html
Copyright © 2011-2022 走看看