本代码需要先添加类成员  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. FastReport.Net 无限页高(连续纸小票)

    using System; using System.Collections; using System.Collections.Generic; using System.ComponentMode ...

  2. jdbc 小结

    1,PreparedStatement/Statement区别: 1,防止sql注入式攻击(sql注入:就是通过非正常手段(比如在url中添加参数)),将sql文执行(比如or 1=1) 2,Prep ...

  3. 最大流Dinic算法模板(pascal)

    program rrr(input,output); const inf=; type pointer=^nodetype; nodetype=record t,c:longint; next,rev ...

  4. 【Java】CSVUtils

    package com.msk.ds.logic; import java.io.*; import java.util.List; /** * Created by Administrator on ...

  5. 洛谷 P2146 [NOI2015]软件包管理器

    真没有想到,这竟然会是一道NOI的原题,听RQY说,这套题是北大出的,北大脑抽认为树剖很难... 只恨没有早学几年OI,只A这一道题也可以出去吹自己一A了NOI原题啊 好了,梦该醒了,我们来看题 以后 ...

  6. NOIP2017 考前汇总

    时隔一年,相比去年一无所知的自己,学到了不少东西,虽然还是很弱,但也颇有收获[学会了打板QAQ] 现在是2017.11.9   21:10,NOIP2017的前两天晚上,明天就要出发,做最后的总结 N ...

  7. 【loj2639】[Tjoi2017]不勤劳的图书管理员

    #2639. 「TJOI2017」不勤劳的图书管理员 题目描述 加里敦大学有个帝国图书馆,小豆是图书馆阅览室的一个书籍管理员.他的任务是把书排成有序的,所以无序的书让他产生厌烦,两本乱序的书会让小豆产 ...

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

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

  9. sloop公共程序之初始过程及启动

    1:sloop_init() 初始化主要是初始化静态sloop_*** 结构体和填充struct sloop_data 结构体中的成员. //初始化静态存储区给sloop_***结构体 static ...

  10. HDU 6194 后缀数组

    string string string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...