工作总结: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 / ...
随机推荐
- 【Android - MD】之NavigationView的使用
NavigationView是Android 5.0新特性--Material Design中的一个布局控件,可以结合DrawerLayout使用,让侧滑菜单变得更加美观(可以添加头部布局). Nav ...
- 使用javah生成.h文件, 出现无法访问android.app,Activity的错误的解决
在工程ndk22/bin/classes中 运行javah com.cn.ndk22.Ndk22.Activity ,出现了.h文件 我在bin/classes目录中 ,就是无法访问, : 错误:无 ...
- Android Layout布局文件里的android:layout_height等属性不起作用
有的时候,我们配置好的布局文件,在加载完成添加到我们的Activity中后发现,并没有安装我们设置的属性 来布局,比为我们设置了android:layout_marginTop="100di ...
- 史上最简单的带流控功能的http server
s.py import time import SimpleHTTPServer import SocketServer BYTES_PER_SECOND=160*1024 class MyHTTPR ...
- [RxJS] Transformation operator: repeat
Operator repeat() is somewhat similar to retry(), but is not for handling operators. In this lesson ...
- [AngularJS + Webpack] Requiring CSS & Preprocessors
Making your CSS modular is a difficult thing to do, but using Webpack makes this so much easier. By ...
- QT QObject::connect函数的学习
从Qobject(QObject.h)源码中可以看到QObject::connect的定义是这样的: static bool connect(const QObject *sender, cons ...
- Compiling JSPs Using the Command-Line Compiler---官方
Web Server provides the following ways of compiling JSP 2.1-compliant source files into servlets: JS ...
- 提取DLL类库代码
@SET destFolder=.\bin@XCOPY /I /Y %SYSTEMDRIVE%\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.Pro ...
- nginx php7 配置 备用
yum install epel-* -y yum install -y wget unzip gcc gcc-c++ make zlib zlib-devel pcre pcre-devel lib ...