VC中采用不同的方法创建字体

原文地址::http://blog.csdn.net/wubind/archive/2007/12/26/1968042.aspx

 

 

采用不同的方法创建字体
2007-12-15 10:08
[例3.8]编写一个单文档的应用程序Li3_8,采用不同的方法创建字体,并根据创建的字体输出不同的文本。
(1)       使用MFCAppWizard创建一个单文档应用程序Li3_8.
(2)       选择项目工作区的ClassView,展开Cli3_8View类,打开成员函数OnDraw().
(3)       在函数OnDraw()中添加如下代码。
void CLi3_8View::OnDraw(CDC* pDC)
{
       CLi3_8Doc* pDoc = GetDocument();
       ASSERT_VALID(pDoc);
       // TODO: add draw code for native data here
    CString outstr[5];
    outstr[1]="1.使用函数CreatPointFont()创建字体字";
    outstr[2]="2.使用函数CreatFontIndirect()创建倾斜、带下划线的黑体字";
    outstr[3]="3.使用函数CreateFont()创建带删除线的大号字";
    outstr[4]="4.使用库存字体对象创建ANSI标准的等宽字";
    CFont *OldFont,NewFont;
    LOGFONT MyFont={
        30,
        10,
        0,
        0,
        0,
        1,
        1,
        0,
        ANSI_CHARSET,
        OUT_DEFAULT_PRECIS,
        CLIP_DEFAULT_PRECIS,
        DEFAULT_QUALITY,
        DEFAULT_PITCH,
        "黑体"
    };
    pDC->TextOut(0,10,"创建字体的几种方法:");
    for(int i=1;i<5;i++){
        switch(i){
        case 1:
            //使用函数CreatPointFont()创建字体
            NewFont.CreatePointFont(200,"宋体",NULL);
            break;
        case 2:
            //使用函数CreateFontIndirect()创建字体
            NewFont.CreateFontIndirect(&MyFont);
            break;
        case 3:
            //使用函数CreateFont()创建字体
            NewFont.CreateFont(30,10,0,0,FW_HEAVY,false,false,
                               true,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
                               CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
                               DEFAULT_PITCH|FF_DONTCARE,"大号字");
            break;
        case 4:
            //使用库存字体对象创建字体
            pDC->SelectStockObject(ANSI_FIXED_FONT);
            break;
        }
        OldFont=pDC->SelectObject(&NewFont);
        pDC->TextOut(0,60*i,outstr[i]);
        pDC->SelectObject(OldFont);
        NewFont.DeleteObject();
    }
}
(4)       编译、链接并运行程序,结果如图3.9所示。

 

 

图3.9创建字体的不同方法

 

 

 

 

 

例程总结:
    经过例程的学习研究,我掌握了四种方法来创建四种不同的字体的方法:
  1.使用函数CreatePointFont()创建宋体字
  2.使用函数CreateFontIndirect()创建倾斜、带下划线的黑体字
3.使用函数CreateFont()创建带删除线的大号字
    4.使用库存字体对象创建ANSI标准的等宽字
    我已经掌握了使用CFont创建新字体对象和旧字体对象指针的方法,我已经能够使用LOGFONT来创建一个结构体变量,并将它传送给函数CreateFontIndirect()来创建一个新字体,并了解各个变量的意义,我懂得了使用文档指针来调用它的成员函数来输出新字体,使用完新字体之后,恢复旧字体,并删除旧字体。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wubind/archive/2007/12/26/1968042.aspx

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值