vs2010mfc编程入门之十八(对话框:字体对话框)

vs2010mfc编程入门之十八(对话框:字体对话框)

ID:32585822

大小:95.80 KB

页数:6页

时间:2019-02-13

vs2010mfc编程入门之十八(对话框:字体对话框)_第1页
vs2010mfc编程入门之十八(对话框:字体对话框)_第2页
vs2010mfc编程入门之十八(对话框:字体对话框)_第3页
vs2010mfc编程入门之十八(对话框:字体对话框)_第4页
vs2010mfc编程入门之十八(对话框:字体对话框)_第5页
资源描述:

《vs2010mfc编程入门之十八(对话框:字体对话框)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、鸡啄米在上一节为大家讲解了文件对话框的使用,本节则主要介绍字体对话框如何应用。字体对话框的作用是用來选择字体。我们也经常能够见到。MFC使用CFontDialog类封装了字体对话框的所有操作。字体对话框也是一种模态对话框。CFontDialog类的构造函数我们先來了解CFontDialog类。它的常用构造函数原型如下:CFontDialog(LPLOGFONTIplflnitial=NULL,DWORDdwFlags=CF_EFFECTS

2、CF_SCREENFONTS,CDC*pdcPrinter=NULL,CW

3、nd*pParentWnd=NULL);参数说明:Iplflnitial:指向LOGFONT结构体数据的指针,可以通过它设置字体的一些特征。dwFlags:指定选择字体的一个或多个属性,详情可在MSDN中查阅。pdcPrinter:指向一个打印设备上下文的指针。pParentWnd:指向字体对话框父窗口的指针。上面的构造函数屮第一个参数为LOGFONT指针,LOGFONT结构体中包含了字体的大部分特征,包括字体高度、宽度、方向、名称等等。下面是此结构体的定义:typedefstructtagLOGFONT{LON

4、GIfHeight;LONGIfWidth;LONGIfEscapement;LONGIfOrientation;LONGIfWeight;BYTEIfltalic;BYTEIfUnderline;BYTEIfStrikeOut;BYTEIfCharSet;BYTEIfOutPrecision;BYTEIfClipPrecision;BYTEIfQuality;BYTEIfPitchAndFamily;TCHARlfFaceName[LF_FACESIZE];}LOGFONT;获取字体对话框中所选字体我们在字体对

5、话框小选择了字体后,如何获取选定的字体呢?我们可以通过CFontDialog类的成员变量m_cf间接获得选定字体的CFont对象。m_cf是CHOOSEFONT类型的变量,CHOOSEFONT结构体定义如下:typedefstruct{DWORDIStructSize;HWNDhwndOwner;HDChDC;LPLOGFONTIpLogFont;INTiPointSize;DWORDFlags;COLORREFrgbColors;LPARAMICustData;LPCFHOOKPROCIpfnHook;LPCT

6、STRIpTemplateName;HINSTANCEhlnstance;LPTSTRIpszStyle;WORDnFontType;INTnSizeMin;INTnSizeMax;}CHOOSEFONT,*LPCHOOSEFONT;CHOOSEFON结构体中冇个成员IpLogFont,它是指向LOGFONT结构体变量的指针,就像上面所说,LOGFONT'

7、«包含了字体特征,例如,我们可以通过LOGFONT的IfFaceName得知字体名。我们最终要获得的是所选择字体的CFont对象,有了字体的LOGFONT怎样

8、获得对应的CFont对象呢?使用CFont类的成员函数CreateFontlndirect4以达到此目的。函数原型如下:BOOLCreateFontlndirect(constLOGFONT*IpLogFont);参数是LOGFONT指针类型,我们可以传入CFontDialog类成员变量m_cf的IpLogFont成员,就可以得到所选字体的CFont对象了。字体对话框应用实例鸡啄米给大家做一个字体対话框的实例。先介绍此实例要实现的功能,生成一个对话框,对话框屮放置一个“字体选择”按钮和一个编辑框。点击“字体选择”

9、按钮将弹出字体对话框。编辑框用于显示所选字体名,并以选定的字体来显示字体名字符串,例如,如果选择了宋体,则在编辑框中以宋体显示字符串“宋体”。以下是创建此实例的步骤:1.创建一个基于对话框的MFC工程,名字为“Example18”。2.在自动生成的主对话框IDD_EXAMPLE18_DIAL0G的模板屮,删除“TODO:Placedialogcontrolshere.”静态文本框,添加一个按钮,ID设为IDC_FONT_BUTTON,Caption设为“字体选择”,用于显示字体对话框来选择字体,再添加一个编辑框,

10、ID设为IDC_FONT_EDIT,用来以所选字体显示字体名字符串。3.在Examplei8Dlg.h中为CExamplel8Dlg类添加private成员变量:CFontm_font;,用来保存编辑框中选择的字体。4.为按钮IDC_FONT_BUTTON添加点击消息的消息处理函数CExamplel8Dlg::OnBnClickedFontButton()05.修改消息处

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。