1. class CMyFileDialog: public CFileDialogImpl<CMyFileDialog>
  2. {
  3. public:
  4. CMyFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
  5. LPCTSTR lpszDefExt = NULL,
  6. LPCTSTR lpszFileName = NULL,
  7. DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
  8. LPCTSTR lpszFilter = NULL,
  9. HWND hWndParent = NULL)
  10. : CFileDialogImpl<CMyFileDialog>(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, hWndParent){ }
  11.  
  12. // Maps
  13. BEGIN_MSG_MAP(CMyFileDialog)
  14. CHAIN_MSG_MAP(CFileDialogImpl<CMyFileDialog>)
  15. END_MSG_MAP()
  16.  
  17. //重载此函数;实现居中
  18. void OnInitDone ( LPOFNOTIFY lpon )
  19. {
  20. GetFileDialogWindow().CenterWindow(lpon->lpOFN->hwndOwner);
  21. }
  22.  
  23. };

重写FileDialog,重载OnInitDone,实现居中,引用代码如下:

  1. void xxx::SelectUpgradeFile()
  2. {
  3. char szFilters[] = _T("升级文件 (*.ram)\0*.ram\0全部文件(*.*)\0*.*\0\0");
  4. CMyFileDialog fileDlg(TRUE,NULL, NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,szFilters );//szFilters
  5.  
  6. char strBuffer[MAX_PATH] = {};
  7. fileDlg.m_ofn.lpstrFile = strBuffer;
  8. fileDlg.m_ofn.nMaxFile = MAX_PATH;
  9. if (fileDlg.DoModal() != IDOK)
  10. {
  11. ImmsMessageBox(m_PaintManager.GetPaintWindow(),_T("升级设备失败!"),_T("提示"),MB_OK);
  12. return ;
  13. }
  14. m_strEquipmentUpgradeFileName = fileDlg.m_ofn.lpstrFile;
  15. if (m_strEquipmentUpgradeFileName.Right().CompareNoCase(".ram")!=)
  16. {
  17. ImmsMessageBox(m_PaintManager.GetPaintWindow(),_T("选择的文件不是编解码器升级文件!"),_T("提示"),MB_OK|MB_ICONERROR);
  18. return ;
  19. }
  20.  
  21. CEditUI *pFileName = static_cast<CEditUI *>(m_PaintManager.FindControl(ctrl_device_data_manager_decoder_equi_upgrade_select_file));
  22. if(!pFileName)
  23. return;
  24. pFileName->SetText(m_strEquipmentUpgradeFileName);
  25.  
  26. }

Windows系统自带选择文件的对话重写和居中处理的更多相关文章

  1. 本文介绍使用windows系统自带的远程桌面mstsc连接Centos 7.x远程桌面的基本方法。

    本文介绍使用windows系统自带的远程桌面mstsc连接Centos 7.x远程桌面的基本方法. 一.前言 我希望用windows远程访问centos图形界面.xmanager连接centos远程桌 ...

  2. 以太网客户端提示windows系统自带共享代理解决方法

    以太网客户端(Dr.COM)登陆出现windows系统自带共享代理,如下图: 系统win+R调出运行: 在服务中,找到Internet Connection Sharing (ICS): 右键属性,将 ...

  3. 如何在windows系统自带命令查看硬件信息?

    如何在windows系统自带命令查看硬件信息? 对于在windows下查看系统信息大家一定不陌生了,我现在说几个最常用的方法,对命令感兴趣的朋友看看,(给菜鸟看的,老手就不要笑话我了,大家都是从那个时 ...

  4. 服务器运维 -- windows系统更换System32下文件后 重启无法进入桌面

    场景描述: windows系统更换System32下文件后 重启无法进入桌面 情况1,原替换文件有备份     解决建议: 准备好该文件 情况2,原备份文件没有备份  解决建议:从相同版本的服务器上边 ...

  5. windows API实现用户选择文件路径的对话框

    在编写应用程序时,有时需要用户选择某个文件,以供应用程序使用,比如在某些管理程序中需要打开某一个进程,这个时候需要弹出一个对话框来将文件路径以树形图的形式表示出来,以图形化的方式供用户选择文件路径,而 ...

  6. Windows系统自带的DOS窗口

    写在前面: 整理自网络 记录学习过程,方便复习 说明 DOS全称为Disk Operating System,意思是"磁盘操作系统" DOS是个人计算机上的一类操作系统,windo ...

  7. Windows系统自带工具的 cmd 命令

    目标 与计算机高手无关,只是为了减少鼠标点击的次数,提高效率. 适用范围 Windows XP,Windows 7,Window 8 (在Windows 7 下验证通过.) 使用方法 在 “运行“ 对 ...

  8. Windows 系统里面的 hosts 文件

    一.什么是hosts文件? hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的 ...

  9. perfmon——使用windows系统自带的性能监视器监控进程信息

    第一次使用perfmon监控应用进程的信息,步骤总结如下: 第一部分 性能监视器 1.快捷键Win+R打开运行界面,输入“perfmon”命令后回车即可打开windows的性能监视器 2.点击“性能监 ...

随机推荐

  1. java学习-初级入门-面向对象②-面向对象概述-面向对象程序设计

    我们在  面向对象①中学习了,结构化程序设计. 今天我们一起学习面向对象程序设计. 学习面向对象程序设计就要了解,在面向对象中重要的知识点. 继承  .  多态   . 抽象  . 接口 我们会在接下 ...

  2. Day2-L-棋盘问题-POJ1321

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...

  3. 常见加密解密 -- pycryptodomex库

    安装 windows pip install pycryptodomex ubuntu pip install pycryptodome 加密方式 单向加密:MD5 只能对数据进行加密,而不能解密 对 ...

  4. 让Nutz支持最快的模板引擎Smarty4j

    Smarty4j是一个开源的模板引擎.没错,它就是著名的php模板引擎之Java移植版. 它特点就是将模板文件或者字符串编译成java类直接执行,所以效率比一般的模板解释的方式处理要快.它发展较晚,所 ...

  5. python内置函数二

    issubclass(a,b)   判断a类是否属于b的子类    返回为布尔值 locals()   显示局部变量 max()   取最大值 min()   取最小值 zip()    拉链方法  ...

  6. git/github error: failed to push some refs to 'https://github.com/shenhaha/cloudletter.git'

    git 提交代码到github上报如下错误 报错分析: 解决方法: 关闭这两个设置 再次提交代码 success

  7. vs2010编译C++ 友元函数

    // CTest.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include &l ...

  8. bugku love

    emmm....控制台运行一下 接着查一下是否有壳 显示是没有壳的,接着查看一下结构 也没有什么发现,上ida看一下吧,顺便说一句每个人的解题思路都不一样.面对一开始都不清楚的结构我会选择交叉引用这样 ...

  9. Swift 语法糖then

    then是一个swift初始化库,只有80几行的代码库,确可以让初始化变得很优雅. 1.使用then初始化AnyObject,这里以初始化控件为例 lazy var label = UILabel() ...

  10. ng-trim

    最近新做了一个需求,要求在angular.js的input 文本框中做到去除首尾空格,实现精确查询. 查了很多正则表达式,后来才发现angular.js项目中默认就能去除首尾空格,ng-trim  默 ...