【MFC系列-第12天】Windows系统对话框
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系统对话框相关推荐
- 【MFC系列-第13天】Windows系统对话框(对话框记事本逻辑)
13.1 内存泄露问题 真正的内存泄露是有循环性反复申请而不释放内存:是指在软件运行时,比如点一下某按钮就申请一次堆空间,而在下次申请前或者适当的时机及时释放内存: Detected memory l ...
- VS 2019 MFC 通过代码关闭 重启Windows 系统的方法和源代码
原理简介 1>通过OpenProcessToken获得与进程相关联的访问令牌. 2>通过LookupPrivilegeValue函数检索指定系统上使用的本 ...
- 鸡啄米vc++2010系列12(属性页对话框)
前面讲了模态对话框和非模态对话框,本节开始鸡啄米讲一种特殊的对话框--属性页对话框.另外,本套教程所讲大部分对VC++各个版本均可适用或者稍作修改即可,但考虑到终究还是基于VS2010版本的,所以将& ...
- VC++之MFC从零开始实现windows系统任务管理器(一、windows任务管理器界面的制作)
VC++之MFC从零开始实现windows系统任务管理器(一.windows任务管理器界面的制作) 通过本例程从零开始使用VC++与MFC实现一个基于windows的任务管理器. 最终效果图 软件工具 ...
- Windows XP硬盘安装Ubuntu 12.04双系统
Windows XP硬盘安装Ubuntu 12.04双系统 一.下载文件 需要下载的东西有两个,一个是grub4dos,另一个是Ubuntu 12.04 LTS的镜像文件,具体下载地址如下: 1.Gr ...
- Windows XP硬盘安装Ubuntu 12.04双系统图文详解
按照下文的方法,自己在winXP上面装Ubuntu12.04双系统,准确说是winXP+win7+Ubuntu三系统:正在安装,稍后将自己安装截图发出来.. 修改计算机名: sudo gedit /e ...
- 【WebLogic】Windows系统下WebLogic 12.1.3.0的安装和补丁
Oracle WebLogic 12.1.3.0是Oracle发布的WebLogic 12c的早期版本,目前已经停止补丁技术支持. 下载地址: https://www.oracle.com/middl ...
- 怎样使用MFC 调用windows系统程序 windows media player
背景:我需要一个函数,启动windows系统中的程序 windows media player ,用于播放我所指定的音频文件: 问题:百度网上的大多数用法,都是在mfc中插入 windows medi ...
- 关于联想小新Air14(或小新系列)更新系统后蓝屏的解决方法(关于windows系统更新安装补丁后出现蓝屏的解决方法)
关于 一.前言 作者在某天更新完windows10系统后,连续两天出现电脑卡机,接而出现蓝屏.出现的很突然,让我很是头疼,咨询联想客服,联想客服首次提供的解决方法是卸载最新的质量更新(读者可点击,按教 ...
最新文章
- “睡眠猴子”团队项目及成员介绍
- 机器学习发现了地下上千公里处的热岩床
- Spring Cloud Alibaba迁移指南2:一行代码从Hystrix迁移到Sentinel
- upload-labs-master文件上传靶场第七关详解
- Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)
- URAL - 1297 Palindrome(后缀数组+RMQ)
- java web 线程数_Java Web应用调优线程池
- php云点播源码,乐视云直播 点播服务端api
- java为何重复调用方法_通过反射调用Java中的getter:重复调用它的最快方法是什么(在性能和可伸缩性方面)?...
- slim框架中防止crsf攻击时,用到的函数hash_equals
- Java程序员最常用的20%技术总结
- OS X上搭建distcc使用XCode进行分布式编译
- el如何获取复选框的值_element ui 表格提交时获取所有选中的checkbox的数据
- 金税盘没有及时清卡怎么办
- LeetCode——1931. 用三种不同颜色为网格涂色(Painting a Grid With Three Different Colors)困难]——分析及代码(Java)
- win10开启快速启动,关机时电源键一直亮着无法正常关机。。。
- 华为云服务器 登录与配置 Mysql
- Linux中安装苹果系统
- 2048小游戏(网页版)
- Python SyntaxError: Missing parentheses in call to 'print'
热门文章
- 1 TB /节点时快速,可预测且高度可用
- 什么是Spring Integration?
- python之路 mysql 博客园_Python之路(二十七):Mysql(下)
- IntelliJ IDEA for Mac如何配置数据源(Data Source)和用户驱动(User Driver)及数据库控制台_数据源配置(Console)详解
- Linux格式化分区的命令
- IntelliJ IDEA for Mac如何存取自定义快捷键配置文件
- java mapper sql_Slardar Sql Mapper Framework for Java( Java 持久层框架一枚~)
- linux android build tools,build.gradle 文件中的 Android SDK Build Tools version
- LeetCode 15 二进制中1的个数
- android 4.4.2截屏方法,android4.4.2 使用 uiautoviewer 截屏报错