本代码需要先添加类成员  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. 【转】mysql force Index 强制索引

    其他强制操作,优先操作如下: mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的h ...

  2. PHP对象的复制

    对象的复制(克隆) $obj1  =  new  A(); $obj1->p1 = 11; $obj2  = $obj1; //值传递 //则,现在有几个对象?——1个对象! 当然: $obj3 ...

  3. 基于Git制作电子书 GitBook

    GitBook 详细介绍 GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git 的教程. ...

  4. jmeter 安装tps插件

    1.下载  jpgc-graphs-basic-2.0.zip 2.解压并将lib 目录下的 jmeter-plugins-cmn-jmeter-0.4.jar 拷贝到 %JMeter%/lib 目录 ...

  5. SPOJ3899——Finding Fractions

    SPOJ上的每个题目都做得我泪牛满面. 这个题目也是的.题目意思是给你两个分数a/b和c/d,要你求出一个分数p/q,使得a/b<p/q<c/d,且p最小. 看完题目后半天都没有任何思路哦 ...

  6. 常州day3

    Task1 小 W 得到了一堆石子,要放在 N 条水平线与 M 条竖直线构成的网格的交点上.因为小 M 最喜欢矩形了, 小 W 希望知道用 K 个石子最多能找到多少四边平行于坐标轴的长方形,它的四个角 ...

  7. 安装redis环境

    1 安装redis至 /home/www/redis目录下 [root@cuijian www]# tar zxf redis-2.8.13.tar.gz [root@cuijian www]# cd ...

  8. 【bzoj4872】【shoi2017】分手即是祝愿

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 746  Solved: 513[Submit][Statu ...

  9. [JSOI2009]瓶子和燃料

    Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy 的飞船上共有 N个瓶子(1<=N& ...

  10. [学习笔记]搜索——模拟与dp的结合

    搜索: 一种基础的算法. 考察常见于NOIP 但是高级的搜索算法可能还会在省选出现. 50%以上的暴力都可以用搜索直接枚举来写. 但是,当数据规模不是很大的时候,搜索也可能成为正解. (比如剪枝PK状 ...