工作总结: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 / ...
随机推荐
- 【设计模式 - 6】之桥接模式(Bridge)
1 模式简介 举个例子,人.车和公路是三个维度,人开着车在公路上行驶,就是将这三个维度进行了关联.人分男人(Man)和女人(Woman),车分小轿车(Car)和公共汽车(Bus),公路分市区 ...
- Linq中Union与Contact方法用法对比
文章一开始,我们来看看下面这个简单的实例. 代码片段1: int[] ints1 = { 2, 4, 9, 3, 0, 5, 1, 7 }; int[] ints2 = { 1, 3, 6, 4, 4 ...
- 只有在配置文件中或 Page 说明会 enableSessionState 至 true 时刻,能够使用会话状态。另外,还要确保应用程序配置 // 段包含 System.Web.SessionSta
首先,弄清楚我们的目的,我的目标是验证用户登录.那是,Session["userName"]!=null 在ok该 起初,我是这么写的,结果给出,提示如果上述错误标题,在调查的很长 ...
- UIPickView的简单介绍
UIPickView的简单介绍 设置UIPickView的时候,我们主要需要设置一下下面的两个属性 UIPickerView *pickView1; pickView1 = [[UIPickerVie ...
- 第八条——覆盖equals方法时需遵守的通用约定
1)自反性 对于任何非null的引用值x,x.equals(x)必须返回true.---这一点基本上不会有啥问题 2)对称性 对于任何非null的引用值x和y,当且仅当x.equals(y)为true ...
- 权限系统与RBAC模型概述
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3793894.html ...
- Bootstrap V3使用Tab标签
Bootstrap V3使用Tab标签 >>>>>>>>>>>>>>>>>>>> ...
- logic:present 和 logic:empty的用法 (转)
logic:empty和logic:notEmpty logic:empty标签判断脚本变量是否为null,是否是一个空的字符串(长度为0),是否是一个空的collection或map(调用isEmp ...
- PHP 开启报错机制
屏蔽PHP错误提示 方法一:在有可能出错的函数前加@,然后or die("") 如: @mysql_connect(...) or die("Database Conne ...
- WisDom.Net 框架设计(二) 服务总线
WisDom.Net 框架设计--服务总线 1.Soa 简介 soa 就是面向服务的体系结构 是一个组件模型,不同的组件之间通过定义良好的接口联系起来.就像盖房子一块砖头一块砖头的砌墙,一片一 ...