代码:

int nStructSize = ;  //Win98 as default  

LPARAM lModuleParam = ;  

TV_INSERTSTRUCT tvItem;  

CString sPathNameSel;  

char   lpszCurrentDir[];//1K

 ::GetModuleFileName(NULL, lpszCurrentDir, );  //Get current directory   

int n = CString(lpszCurrentDir).ReverseFind('\\');

 CString sTemp = CString(lpszCurrentDir).Left(n);  

STRCPY(lpszCurrentDir, sTemp);

 CString str("", );

 /*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 = ;

 }  

else       //Windows95/98

 {   

nStructSize = ;  

}

 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(/*PRJ*/, ));//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)));

  //  }

  // }

  //}

 }

工作总结:MFC使用Windows自带打开对话框的更多相关文章

  1. 工作总结:MFC调用Windows自带新建、保存对话框代码

    保存: void CExample17Dlg::OnBnClickedSaveButton() { // TODO: Add your control notification handler cod ...

  2. unity3d打开对话框

    最近一直在忙项目,没时间更新博客,这两天趁空封装windows下的打开对话框,支持多选.其他系统可以用ngui或者ugui封装一个. 这里就不上封装的源码了提供dll供小伙伴们使用,如果有需要源码请请 ...

  3. 工作自动化,替代手工操作,使用python操作MFC、windows程序

    目录 背景--为什么要自动化操作? 方法--怎么实现自动化操作? 查找窗体 发送消息 获取文本 总结 背景--为什么要自动化操作? 工作中总是遇到反复重复性的工作?怎么用程序把它变成自动化操作?将程序 ...

  4. 教你用Windows自带工具给优盘/移动硬盘添加密码

    教你用Windows自带工具给优盘/移动硬盘添加密码 本文中优盘,移动硬盘和分区操作方式一样,为方便描述,下文将只说优盘 优盘成了很多人每天都会用到的工具,有时候自己优盘会存着一些不希望别人看到的文件 ...

  5. Windows在当前目录打开cmd

    /********************************************************************** * Windows在当前目录打开cmd * 说明: * ...

  6. Java内存泄露分析和解决方案及Windows自带查看工具

    Java内存泄漏是每个Java程序员都会遇到的问题,程序在本地运行一切正常,可是布署到远端就会出现内存无限制的增长,最后系统瘫痪,那么如何最快最好的检测程序的稳定性,防止系统崩盘,作者用自已的亲身经历 ...

  7. Windows自带强大的入侵检测工具——Netstat 命令 查询是否中木马

    Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是否有被中木马, ...

  8. derby数据库windows自带的客户端

    本示例演示用windows自带的ij来操作derby数据库,包括建库,建表,插入数据,查询数据 首先要配置环境变量: 其次打开cmd输入如下图所示的命令: java代码如下: package com. ...

  9. VS2010 / MFC + OpenCV 2.4.1打开图片

    Windows 7 x64,VS2010 / MFC + OpenCV 2.4.1打开图片显示到Picture控件中. OpenCV 2.2.OpenCV 2.3同样适用. 工具/原料 WinXP / ...

随机推荐

  1. SQL server数据库中的DateTime类型出现的问题

    我们知道这个SQL server数据库中的DateTime类型是数据库应用开发中经经常使用到的一种数据类型.而C#语言中也有DateTime类型,尽管二者都是用来描写叙述时间的,可是它们的默认值是不同 ...

  2. 如何更改应用在app store的名称

    如何修改应用在app store 的名称,我修改了plist里面的bundle display name,现在安装后在设备上会显示修改后的名称,可是app store里面还是原来的名称. 何把app ...

  3. 学习NodeJS第一天:node.js引言

    Node.JS 是资深 C 程序猿 Ryan Dahl(http://four.livejournal.com/)的作品,根据 Google 著名的开源 JavaScript 引擎 V8 来进行二次开 ...

  4. lenky的个人站点 ----LINUX 内核进程

    http://www.lenky.info/archives/category/nix%E6%8A%80%E6%9C%AF/%E5%86%85%E6%A0%B8%E6%8A%80%E6%9C%AF

  5. Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)

    1. 基础知识: Android(java)学习笔记61:多线程程序的引入    ~    Android(java)学习笔记76:多线程-定时器概述和使用 

  6. python s12 day3

    python s12 day3   深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  7. a标签的背景图在ie8下显示问题

    今天遇到个小问题,纠结了很久,分享下 a标签添加背景图,需要给a添加display:block样式 但是在ie8下还是不能显示背景图,开始以为是由于a标签为空造成的,试了下添加内容也没用,后来注意到一 ...

  8. My-sql #1045 - Access denied for user 'root'@'localhost' (using password: NO)

    当你重装数据库后出现这个问题的时候,不要着急,首先你要去你的确定你的数据库已经成功的把服务开启了, 然后确定你的密码和账户,IP都确认的情况下, 去寻找config.inc.php 这个文件,根据配置 ...

  9. 在线预览文件(pdf)

    1.flash版(借助flexpaper工具) 可以把pdf文件用pdf2swf工具转换成swf文件.下载地址http://www.swftools.org/download.html 转换代码如下: ...

  10. TextView使用Spannable设置复合文本

    http://blog.csdn.net/linghu_java/article/details/32053167 Spannable 对文字的编辑减少TextView的拼接并且达到改变一串字符中的部 ...