工作总结: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 / ...
随机推荐
- 使用systemtap调试linux内核
http://blog.csdn.net/heli007/article/details/7187748 http://linux.chinaunix.net/docs/2006-12-15/3479 ...
- Qt5对Json的读写
主要任务:通过Qt5完成对Json格式的文件的读写操作. ①首先读取json文件进行解析 ②对读取出来的东西判断是QJsonObject还是QJsonArray类型③对相应的类型根据提供的key ...
- SQLite查询优化性能要点
Sqlite是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单,它只是运用索引机制来进行优化的,经过对SQLite的查询优化的分析以及对源代码的研究,我将SQLite的查询优总结如下: ...
- GUI编程笔记(java)11:使用Netbeans工具进行GUI编程
Netbeans工具:是基于java语言进行GUI界面设计的工具 Visual Studio工具:是基于C#语言进行GUI界面设计的工具
- IDLHDF5读取与转换
需求决定了动力,此时近凌晨一点,忙里偷闲,终于忙完了今天的“这点儿”事儿.参考帮助文档,从hdf的读写,捉摸hdf5的读写,总算弄明白了.稍作总结,以备候查. hdf5作为hdf数据的补充与升级,目前 ...
- URLConnection类详解
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3753224.html ...
- Codeforces 231E - Cactus
231E - Cactus 给一个10^5个点的无向图,每个点最多属于一个环,规定两点之间的简单路:从起点到终点,经过的边不重复 给10^5个询问,每个询问两个点,问这两个点之间有多少条简单路. 挺综 ...
- rabbitmq 消息持久化
rabbitmq 消息持久化 2016-02-18 11:19 224人阅读 评论(0) 收藏 举报 分类: 综合(15) 版权声明:本文为博主原创文章,未经博主允许不得转载. 二: 任务分发 & ...
- Android Camera开发:使用TextureView和SurfaceTexture预览Camera 基础拍照demo
Google自Android4.0出了TextureView,为什么推出呢?就是为了弥补Surfaceview的不足,另外一方面也是为了平衡GlSurfaceView,当然这是本人揣度的.关于Text ...
- Conversion Between DataTable and List in C#
1.List to DataTable public static DataTable ToDataTable<TSource>(this IList<TSource> dat ...