12.1 INI配置文件

UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault ); 从应用程序的配置文件(.INI)的一个配置项中获取一个整数

CString GetProfileString(LPCTSTR szSection, LPCTSTR szEntry, LPCTSTR szDefault = NULL ); 从应用程序的配置文件(.INI)的一个配置项中获取一个字符串

BOOL WriteProfileInt(LPCTSTR szSection, LPCTSTR szEntry, int nValue ); 将一个整数写到应用程序的配置文件(.INI)文件的配置项中

BOOL WriteProfileString(LPCTSTR szSect, LPCTSTR szEntry, LPCTSTR lpszValue ); 将一个字符串写到应用程序的配置文件(.INI)文件的配置项中

void SetRegistryKey( LPCTSTR lpszRegistryKey ); 使应用程序的配置保存在注册表中,而不保存于(.INI)文件中

WriteProfileBinary:把二进制数据写入配置文件或注册表(例如:结构体对象的存取)

GetProfileBinary:从配置文件或注册表提取二进制数据(例如:结构体对象的存取)

DoWaitCursor:在一个函数执行时间很长时使用;

CWaitCursor a; //构造时忙,析构时恢复;

BOOL CNotepadApp::InitInstance()
{SetRegistryKey(_T("NotePad"));free((LPTSTR)m_pszProfileName);m_pszProfileName =(LPCTSTR) malloc(256);_tcscpy_s((LPTSTR)m_pszProfileName,128, _T("./notepad.ini"));CNotepadDlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = dlg.DoModal();return FALSE;
}
void CNotepadDlg::OnDestroy()
{CDialogEx::OnDestroy();CRect rect;//RECT* GetWindowRect(rect);theApp.WriteProfileInt(_T("RECT"), _T("LEFT"), rect.left);theApp.WriteProfileInt(_T("RECT"), _T("RIGHT"), rect.right);theApp.WriteProfileInt(_T("RECT"), _T("TOP"), rect.top);theApp.WriteProfileInt(_T("RECT"), _T("BOTTOM"), rect.bottom);
//  theApp.WriteProfileString(_T("SETTING"), _T("CAPTION"), _T("我的记事本"));
}

12.2 INI配置文件的特点

a)方便保存和加载,比CFile使用方便多了;

b)方便运营人员在程序外配置数据,配置好的数据参与程序启动后的运行;

c)方便数据管理,比如数据可以保存在注册表中;

12.3 CDialog类常用成员函数:

a)DoModal:创建模式对话框

b)Create:创建非模式对话框

c)NextDlgCtrl:

d)PrevDlgCtrl:

e)GotoDlgCtrl:

f)GetDefID SetDefID:

12.4 CDialog的派生类,CDialogEx:里面新增了背景颜色设置和背景图片(居上下左右或平铺)

CCommandDialog派生了以下这些类。
a)CColorDialog: Lets user select colors.

b)CFileDialog: Lets user select a filename to open or to save.

c)CFindReplaceDialog: Lets user initiate a find or replace operation in a text file.

d)CFontDialog: Lets user specify a font.

e)CPrintDialog: Lets user specify information for a print job.

f)CPrintDialogEx Windows 2000 print property sheet.

12.5 COLORREF类型

四个字节变量类型(DWORD),最低位是红,然后是绿和蓝代表RGB颜色。

GetRValue:拆分其中最低字节的红(分量数值)。

GetGValue:拆分其中第二个字节的(绿分量数值)。

GetBValue:拆分其中第三个字节的(蓝分量数值)。

RGB(255,0,0) 反色 青 RGB(0,255,255)
绿 RGB(0,255,0) 发色 紫 RGB(255,0,255)
RGB(0,0,255) 反色 黄 RGB(255,255,0)

粉红色:RGB(255,128,128)
粉紫色:RGB(255,128,255)
深绿色:RGB(0,128,0)

12.6 CColorDialog:颜色对话框

a)构造函数:CColorDialog dlg(0,0,GetDesktopWindow());让对话框成为独立窗口(不附着于主窗口)

b)CColorDialog dlg(RGB(255,128,128));让对话框弹出时选中一个指定的颜色

12.7 CFontDialog:字体对话框

a)CFontDialog构造函数:根据指定LOGFONT结构体,对话框启动时将按照带入的信息初始化;

b)GetCurrentFont(LPLOGFONT plf):把选中的字体信息输出到指针指向的LOGFONT结构体内;

c)CFont::CreateFontIndirect(const LPLOGFONT plf):把指定的字体信息(名称大小粗体等)生成Font句柄;

d)CFont::GetLogFont(LPLOGFONT plf):从CFont类对象内的句柄解析出字体信息((名称大小斜体等));

e)CWnd::GetFont:获取一个窗口已经设置好的CFont对象(指针);

f)CWnd::SetFont:将含有句柄的CFont对象(指针)设置到一个窗口上;

【MFC系列-第12天】Windows系统对话框相关推荐

  1. 【MFC系列-第13天】Windows系统对话框(对话框记事本逻辑)

    13.1 内存泄露问题 真正的内存泄露是有循环性反复申请而不释放内存:是指在软件运行时,比如点一下某按钮就申请一次堆空间,而在下次申请前或者适当的时机及时释放内存: Detected memory l ...

  2. VS 2019 MFC 通过代码关闭 重启Windows 系统的方法和源代码

    原理简介          1>通过OpenProcessToken获得与进程相关联的访问令牌.         2>通过LookupPrivilegeValue函数检索指定系统上使用的本 ...

  3. 鸡啄米vc++2010系列12(属性页对话框)

    前面讲了模态对话框和非模态对话框,本节开始鸡啄米讲一种特殊的对话框--属性页对话框.另外,本套教程所讲大部分对VC++各个版本均可适用或者稍作修改即可,但考虑到终究还是基于VS2010版本的,所以将& ...

  4. VC++之MFC从零开始实现windows系统任务管理器(一、windows任务管理器界面的制作)

    VC++之MFC从零开始实现windows系统任务管理器(一.windows任务管理器界面的制作) 通过本例程从零开始使用VC++与MFC实现一个基于windows的任务管理器. 最终效果图 软件工具 ...

  5. Windows XP硬盘安装Ubuntu 12.04双系统

    Windows XP硬盘安装Ubuntu 12.04双系统 一.下载文件 需要下载的东西有两个,一个是grub4dos,另一个是Ubuntu 12.04 LTS的镜像文件,具体下载地址如下: 1.Gr ...

  6. Windows XP硬盘安装Ubuntu 12.04双系统图文详解

    按照下文的方法,自己在winXP上面装Ubuntu12.04双系统,准确说是winXP+win7+Ubuntu三系统:正在安装,稍后将自己安装截图发出来.. 修改计算机名: sudo gedit /e ...

  7. 【WebLogic】Windows系统下WebLogic 12.1.3.0的安装和补丁

    Oracle WebLogic 12.1.3.0是Oracle发布的WebLogic 12c的早期版本,目前已经停止补丁技术支持. 下载地址: https://www.oracle.com/middl ...

  8. 怎样使用MFC 调用windows系统程序 windows media player

    背景:我需要一个函数,启动windows系统中的程序 windows media player ,用于播放我所指定的音频文件: 问题:百度网上的大多数用法,都是在mfc中插入 windows medi ...

  9. 关于联想小新Air14(或小新系列)更新系统后蓝屏的解决方法(关于windows系统更新安装补丁后出现蓝屏的解决方法)

    关于 一.前言 作者在某天更新完windows10系统后,连续两天出现电脑卡机,接而出现蓝屏.出现的很突然,让我很是头疼,咨询联想客服,联想客服首次提供的解决方法是卸载最新的质量更新(读者可点击,按教 ...

最新文章

  1. “睡眠猴子”团队项目及成员介绍
  2. 机器学习发现了地下上千公里处的热岩床
  3. Spring Cloud Alibaba迁移指南2:一行代码从Hystrix迁移到Sentinel
  4. upload-labs-master文件上传靶场第七关详解
  5. Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)
  6. URAL - 1297 Palindrome(后缀数组+RMQ)
  7. java web 线程数_Java Web应用调优线程池
  8. php云点播源码,乐视云直播 点播服务端api
  9. java为何重复调用方法_通过反射调用Java中的getter:重复调用它的最快方法是什么(在性能和可伸缩性方面)?...
  10. slim框架中防止crsf攻击时,用到的函数hash_equals
  11. Java程序员最常用的20%技术总结
  12. OS X上搭建distcc使用XCode进行分布式编译
  13. el如何获取复选框的值_element ui 表格提交时获取所有选中的checkbox的数据
  14. 金税盘没有及时清卡怎么办
  15. LeetCode——1931. 用三种不同颜色为网格涂色(Painting a Grid With Three Different Colors)困难]——分析及代码(Java)
  16. win10开启快速启动,关机时电源键一直亮着无法正常关机。。。
  17. 华为云服务器 登录与配置 Mysql
  18. Linux中安装苹果系统
  19. 2048小游戏(网页版)
  20. Python SyntaxError: Missing parentheses in call to 'print'

热门文章

  1. 1 TB /节点时快速,可预测且高度可用
  2. 什么是Spring Integration?
  3. python之路 mysql 博客园_Python之路(二十七):Mysql(下)
  4. IntelliJ IDEA for Mac如何配置数据源(Data Source)和用户驱动(User Driver)及数据库控制台_数据源配置(Console)详解
  5. Linux格式化分区的命令
  6. IntelliJ IDEA for Mac如何存取自定义快捷键配置文件
  7. java mapper sql_Slardar Sql Mapper Framework for Java( Java 持久层框架一枚~)
  8. linux android build tools,build.gradle 文件中的 Android SDK Build Tools version
  9. LeetCode 15 二进制中1的个数
  10. android 4.4.2截屏方法,android4.4.2 使用 uiautoviewer 截屏报错