码迷,mamicode.com
首页 > 其他好文 > 详细

CFileDialog(文件夹对话框类)和CFontDialog(字体设置对话框类)的使用学习

时间:2016-06-01 23:08:36      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:

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封装。

 

CFileDialog(文件夹对话框类)和CFontDialog(字体设置对话框类)的使用学习

标签:

原文地址:http://www.cnblogs.com/laohan1221/p/5550979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!