本代码需要先添加类成员  LOGFONT lf;

void CMyDlg::OnButton3()
{
// TODO: Add your control notification handler code here //方法一:直接给这个结构体中的结构体赋值,通过CFontDialog的构造函数实现字体对话框的初始化。
//HDC hDC=GetDC()->m_hDC;
//strcpy(lf.lfFaceName,"新宋体");
//lf.lfCharSet=DEFAULT_CHARSET;
//lf.lfWeight=FW_NORMAL;
//lf.lfHeight=-MulDiv(12, GetDeviceCaps(hDC, LOGPIXELSY), 72);
//lf.lfWidth=8;
//lf.lfItalic=FALSE;
//lf.lfUnderline=FALSE;
//CFontDialog cd(&lf,CF_INITTOLOGFONTSTRUCT);//参数二:取消字体对话框中的颜色。 //方法二:不通过构造函数,而是具体给成员m_cf结构体各个成员赋值实现字体对话框的初始化。
CFontDialog cd;
cd.m_cf.lStructSize=sizeof(CHOOSEFONT); //字体对话框对象中有个m_cf成员,它是一个结构体。
cd.m_cf.Flags|=CF_INITTOLOGFONTSTRUCT;
cd.m_cf.lpLogFont=&lf;//lpLogFont又是这个m_cf成员中的成员,也是一个结构体。
cd.m_cf.hwndOwner=this->m_hWnd;
cd.m_cf.rgbColors=mycolor; if (IDOK == cd.DoModal())
{
if (myfont.m_hObject)
{
myfont.DeleteObject();
} myfont.CreateFontIndirect(cd.m_cf.lpLogFont);//myfont是CFont成员变量,需另声明。类型为CFont
myfontname = cd.m_cf.lpLogFont->lfFaceName;//用于导出字体对话框中用户选择的字体名称,myfontname也是成员变量,需另声明。类型为CString
mycolor = cd.m_cf.rgbColors;//用于导出字体对话框用户选择的颜色,mycolor也是成员变量,需另声明。类型为COLORREF
Invalidate();本语句使窗体重绘,具体绘制代码如下: } }
void CMyDlg::OnPaint()
{

////////////////////////////////////////////////////////////////////////////////////////////////// CPaintDC dc(this); CFont* oldfont = dc.SelectObject(&myfont);//重绘时把字体选入设备
dc.SetBkMode(TRANSPARENT);//设置背景模式为透明
dc.SetTextColor(mycolor);//设置输出的字符串颜色
dc.TextOut(10,10
,myfontname);//指定位置输出文本,这里是表示字体对话框中用户选择的字体名称
dc.SelectObject(oldfont);//还原设备字体
////////////////////////////////////////////////////////////////////////////////////////////////////

if (IsIconic())
{
CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon
dc.DrawIcon(x, y, m_hIcon); // CDC*p=this->GetDC(); }
else
{
CDialog::OnPaint();
} }

VC字体对话框的初始化的更多相关文章

  1. 【转】VC 模式对话框和非模式对话框的创建,销毁和区别

    原文网址:http://blog.csdn.net/mycaibo/article/details/6002151 VC 模式对话框和非模式对话框的创建,销毁和区别   在WIN32中,模式对话框的创 ...

  2. MFC编程入门之十八(对话框:字体对话框)

    在上一节为大家讲解了文件对话框的使用,本节则主要介绍字体对话框如何应用. 字体对话框的作用是用来选择字体.我们也经常能够见到.MFC使用CFontDialog类封装了字体对话框的所有操作.字体对话框也 ...

  3. VS2010/MFC对话框:字体对话框

    字体对话框) 在上一节为大家讲解了文件对话框的使用,本节则主要介绍字体对话框如何应用. 字体对话框的作用是用来选择字体.我们也经常能够见到.MFC使用CFontDialog类封装了字体对话框的所有操作 ...

  4. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

  5. vc 基于对话框多线程编程实例——线程之间的通信

     vc基于对话框多线程编程实例——线程之间的通信 实例:

  6. PyQt4字体对话框QFontDialog

    字体对话框时用来显示字体的对话框部件. #!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, Qt ...

  7. VS2010/MFC编程入门之十八(对话框:字体对话框)

    鸡啄米在上一节为大家讲解了文件对话框的使用,本节则主要介绍字体对话框如何应用. 字体对话框的作用是用来选择字体.我们也经常能够见到.MFC使用CFontDialog类封装了字体对话框的所有操作.字体对 ...

  8. VS2010-MFC(对话框:字体对话框)

    转自:http://www.jizhuomi.com/software/175.html 字体对话框的作用是用来选择字体.我们也经常能够见到.MFC使用CFontDialog类封装了字体对话框的所有操 ...

  9. VC++模态对话框和非模态对话框

    MFC中有两种类型的对话框:模态对话框和非模态对话框.  模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务.非模态对话框是指当其显示时,允许转而执行程序中 ...

随机推荐

  1. script 执行的三种方式

    <script>: 脚本的获取和执行是同步的.此过程中页面被阻塞,停止解析. <script defer = "defer">:脚本的获取是异步的,执行是同 ...

  2. python判断字符串是否包含子字符串

    python的string对象没有contains方法,不可以使用string.contains的方法判断是否包含子字符串,但是python有更简单的方法来替换contains函数 python的st ...

  3. 第209天:jQuery运动框架封装(二)

    运动框架 一.函数------单物体运动框架封装 1.基于时间的运动原理 动画时间进程 动画距离进程 图解: 物体从0移动到400 当物体移动到200的时候 走了50% 同样的,物体总共运行需要4秒 ...

  4. bzoj4569-萌萌哒

    题目 有一个长度为\(n\)的十进制数,用\(s\)表示.有\(m\)个限制条件,每个条件形如:\((l_1,r_1,l_2,r_2)\),表示\(s[l_1:r_1]=s[l_2:r_2]\). 现 ...

  5. BZOJ4985 评分(二分答案+树形dp)

    首先二分答案简化一下问题,现在只有0和1了,要求最后剩下的是1.再简化一下考虑没有已固定的位置怎么做.考虑每个位置由其合并到的位置连边,显然这样形成了一棵三叉树.设f[i]为使得某位置为1其子树至少要 ...

  6. 学习NAT时引出网关

    网关(Gateway) 网关实质上是一个网络通向其他网络的IP地址 只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信

  7. [JOI 2015 Final] 分蛋糕 2

    link 试题分析 容易发现性质,选择的是一段区间,但是贪心无法去维护这件事情,所以考虑$dp$,且我们只要去设计关于$JOI$的选择. 设$dp(i,j)$为现在要在$[l,r]$区间内选择,然后就 ...

  8. 【数学】【CF27E】 Number With The Given Amount Of Divisors

    传送门 Description 给定一个正整数\(n\),输出最小的整数,满足这个整数有n个因子 Input 一行一个整数\(n\) Output 一行一个整数,代表答案. Hint \(1~\leq ...

  9. CSK & KCF(tracking)

    转自:http://blog.csdn.net/ben_ben_niao/article/details/51364323 上次介绍了SRDCF算法,发展历史轨迹为CSK=>>KCF/DC ...

  10. vs下取得资源文件中的版本信息

    在Windows Mobile和Wince(Windows Embedded CE)下开发的产品,有时候需要显示当前产品的版本信息.一般来说,版本信息是保存在资源文件里面的,例如下图: 为了保持一致, ...