博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CFileDialog(文件夹对话框类)和CFontDialog(字体设置对话框类)的使用学习
阅读量:5122 次
发布时间:2019-06-13

本文共 2593 字,大约阅读时间需要 8 分钟。

CFileDialog(文件夹对话框类)

主要用于文件的保存,另存,打开,关闭等功能

功能“另存为”的实现:

1 void CTXTDlg::OnFileSaveas()  2 { 3     LPCTSTR szFilter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||";      //过滤器设置,注意格式   4     CFileDialog fd(FALSE,"txt",NULL,OFN_OVERWRITEPROMPT|OFN_PATHMUSTEXIST|  //fd初始化 5         OFN_FILEMUSTEXIST|OFN_CREATEPROMPT,szFilter);              // 6     if(IDCANCEL == fd.DoModal()) 7         return; 8     CString szFile = fd.GetPathName();                      //获取文件路径(全路径) 9     CFile file;                                   //通过file对文件进行操作10     if(!file.Open(szFile,CFile::modeWrite|CFile::modeCreate))         //打开文件11     {12         MessageBox(fd.GetFileName() + " 保存文件时失败!",NULL,MB_ICONEXCLAMATION);13         return;14     }15     m_szFile = szFile;16     CString szText;17     GetDlgItemText(IDC_TEXT,szFile);                  18     file.Write(szText,szText.GetLength());                    //写入控件中获取出来的数据19     file.Close();                                    //关闭文件20     CEdit*pEdit = (CEdit*)GetDlgItem(IDC_TEXT);21     pEdit->SetModify(FALSE);                            //保存之后设置修改状态,关闭时不提示22     SetTitle();23 24 }

CFile 封装了m_hFile句柄,可以对文件进行打开、关闭、读写等操作

CFileDialog 主要是初始化时候的设置(以读取的方式还是保存的方式打开)还有过滤器的设置问题

CEdit 编辑框控件

 

CFontDialog(字体设置对话框类)

主要用于字体设置功能包括字体的字号,粗体,斜体,下划线删除线等

void CTXTDlg::OnFormatFont() {    CFont *pFont = GetDlgItem(IDC_TEXT)->GetFont();    LOGFONT lf;                                    //描述的了Font的属性,包括高宽、字号、斜体、下划线等    pFont->GetLogFont(&lf);                        //fill LOGFONT,将获取的字体格式放到lf中    CFontDialog fd(&lf);                  //CFont属性对话框,并填充当前属性(lf),将lf格式放到fd中,对fd初始化
if(IDCANCEL == fd.DoModal())                        return;    fd.GetCurrentFont(&lf);                       //将新的格式放入lf中         m_font.DeleteObject();              //删除原有格式    m_font.CreateFontIndirect(&lf);         //存入当前格式    GetDlgItem(IDC_TEXT)->SetFont(&m_font);    //设置当前格式到控件中            }

LOGFONT是一个保存字体属性的结构体

typedef struct tagLOGFONTW{    LONG      lfHeight;    LONG      lfWidth;    LONG      lfEscapement;    LONG      lfOrientation;    LONG      lfWeight;    BYTE      lfItalic;    BYTE      lfUnderline;    BYTE      lfStrikeOut;    BYTE      lfCharSet;    BYTE      lfOutPrecision;    BYTE      lfClipPrecision;    BYTE      lfQuality;    BYTE      lfPitchAndFamily;    WCHAR     lfFaceName[LF_FACESIZE];} LOGFONTW, *PLOGFONTW, NEAR *NPLOGFONTW, FAR *LPLOGFONTW;

LOGFONT:   一个结构,用来逻辑上表达一个字体,比如LOGFONT.lfFaceName是字体的名字 

HFONT:   一个句柄,相当于表示内存中的一个字体对象,它可以马上拿来用   

CFont:   是mfc对于HFONT的一种封装,是用来对句柄操作的类

我的理解是:LOGFONT被HFONT封装,HFONT又被CFont封装。

 

转载于:https://www.cnblogs.com/laohan1221/p/5550979.html

你可能感兴趣的文章
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>