工作总结:MFC使用Windows自带打开对话框
代码:
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自带打开对话框的更多相关文章
- 工作总结:MFC调用Windows自带新建、保存对话框代码
保存: void CExample17Dlg::OnBnClickedSaveButton() { // TODO: Add your control notification handler cod ...
- unity3d打开对话框
最近一直在忙项目,没时间更新博客,这两天趁空封装windows下的打开对话框,支持多选.其他系统可以用ngui或者ugui封装一个. 这里就不上封装的源码了提供dll供小伙伴们使用,如果有需要源码请请 ...
- 工作自动化,替代手工操作,使用python操作MFC、windows程序
目录 背景--为什么要自动化操作? 方法--怎么实现自动化操作? 查找窗体 发送消息 获取文本 总结 背景--为什么要自动化操作? 工作中总是遇到反复重复性的工作?怎么用程序把它变成自动化操作?将程序 ...
- 教你用Windows自带工具给优盘/移动硬盘添加密码
教你用Windows自带工具给优盘/移动硬盘添加密码 本文中优盘,移动硬盘和分区操作方式一样,为方便描述,下文将只说优盘 优盘成了很多人每天都会用到的工具,有时候自己优盘会存着一些不希望别人看到的文件 ...
- Windows在当前目录打开cmd
/********************************************************************** * Windows在当前目录打开cmd * 说明: * ...
- Java内存泄露分析和解决方案及Windows自带查看工具
Java内存泄漏是每个Java程序员都会遇到的问题,程序在本地运行一切正常,可是布署到远端就会出现内存无限制的增长,最后系统瘫痪,那么如何最快最好的检测程序的稳定性,防止系统崩盘,作者用自已的亲身经历 ...
- Windows自带强大的入侵检测工具——Netstat 命令 查询是否中木马
Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是否有被中木马, ...
- derby数据库windows自带的客户端
本示例演示用windows自带的ij来操作derby数据库,包括建库,建表,插入数据,查询数据 首先要配置环境变量: 其次打开cmd输入如下图所示的命令: java代码如下: package com. ...
- VS2010 / MFC + OpenCV 2.4.1打开图片
Windows 7 x64,VS2010 / MFC + OpenCV 2.4.1打开图片显示到Picture控件中. OpenCV 2.2.OpenCV 2.3同样适用. 工具/原料 WinXP / ...
随机推荐
- java中的上转型对象
1. 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如: A a;a = new B();ORA a;B b = new B();a = b; 通俗的说 ...
- MYSQL查询计划KEY_LEN
http://www.innomysql.com/article/25241.html 1 key_len的含义 2 MySQL中key_len计算规则 3 通过key_len分析联合索引 本文首先介 ...
- ROS中Mangle解析
http://blog.csdn.net/bluecy/article/details/8192307
- spring mvc DispatcherServlet详解之四---视图渲染过程
整个spring mvc的架构如下图所示: 现在来讲解DispatcherServletDispatcherServlet的最后一步:视图渲染.视图渲染的过程是在获取到ModelAndView后的过程 ...
- Dreamweaver cs6安装破解
Dreamweaver 是前端开发的必备软件.目前最新版本为CS6,与CS5相比多了对HTML5.CSS3.jquery的关联支持,可以更方便的在Dreamweaver中编写前端代码. 安装准备: 1 ...
- C#语法糖之开篇
本人虽然大学不是学的计算机但是对于IT行业的热爱,依然决然进军IT行业了,自从踏进这个行业到现在也已经3年多了,从去年开发通过网上 了解博客园后深深的爱上这儿了,这里有很多牛人,通过拜读他们的代码,让 ...
- node 搭建开发框架express
参考地址: http://www.itnose.net/detail/6095003.html 开发环境 E:\project> node -v v0.10.30 E:\project> ...
- Ubuntu系统配置日志/var/log/message
ubuntu系统默认不生成/var/log/messages文件,有时候想查看相关日志就很不方便,于是我们可以设置使系统生成此文件. 1.先安装 apt-get install rsyslog2.用v ...
- Asp.net MVC利用Ajax.BeginForm实现bootstrap模态框弹出,并进行前段验证
1.新建Controller public ActionResult Index() { return View(); } public ActionResult Person(int? id) { ...
- 安卓开发之viewpager学习(头条显示)
activity_luancher.xml代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res ...