C++-MFC(5)-字体和文本输出-CFONT-CDC(CPen,CBrush)-VS2019-实例源码

文本按一定字体输出是界面常用的功能。

用到字体类CFont 和 文本输出函数dc.TextOut()

与一般的类对象使用方法一样:CFont也是创建、初始化、设定属性、调用、删除。

三点注意:

1.设定一次属性,显示一次设定的样式。

2.用完后记得恢复到默认设置样式。

3.VC6.0->VS2019 不通的是 TextOut->TextOutW

4.对CPEN CBRUSH的使用示例。

结果图:

这太简单了,直接上代码。

  1. 定义 .h文件中

CFont m_newFont;//新字体  需要用创建函数,所以用变量

CFont *m_pOldFont;//选新字体之前的字体 之前是实例,所以用指针

  1. 初始化 .cpp文件

OnInitDialog()

m_pOldFont=NULL;

m_newFont.CreatePointFont(180,_T("隶书"));   //创建新字体

 

  1. 调用OnPaint()

CPaintDC dc(this);     //字是依附在paint上的。 

m_pOldFont=(CFont*)dc.SelectObject(&m_newFont);

//1.第一次设置显示

//设置文本、设置背景、指定位置设置输出

dc.SetBkMode(TRANSPARENT);

//设置为红色

dc.SetTextColor(RGB(255,0,0));

dc.Textout(m_nTextX,10,_T("!"));

 

//2.第二次设置显示

//设置为绿色

dc.SetTextColor(RGB(255,0,0));

dc.Textout(m_nTextX,10,_T("!"));

 

//3.恢复以前的字体

dc.SelectObject(m_pOldFont);

4.Cpen,CBrush的使用

void dlg::DrawWave(CDC *pDC,CRect &rectPicture)
{
	//1.定义
	float fX;//相邻两个点的坐标距离
	float fY;
	int nX;//存储绘图点的横坐标
	int nY;
	CPen newPen;//创建新画笔
	CPen *pOldPen;//存放旧画笔
	CBrush newBrush;//创建新画刷
	CBrush *pOldBrush;//存放新画刷


    //创建新的
    newBrush.CreateBrush(RGB(0,0,0));
    //选择新的,并将旧的指针保存到pOldBrush
    pOldBrush=pDC->SelectObject(&newBrush);
    //设置黑色背景
    pDC->Rectangle(rectPicture);
    //恢复旧画刷
    pDC->SelectObject(pOldBrush);
    //删除
    newBrush.DeleteObject();


    //创建新笔 
    newPen.CreatePen(PS_SOLID,1,RGB(0,255,0));
    //选择新笔
    pOldPen=pDC->SelectObject(&newpen);

    //...

    //恢复旧画笔
     pDC->SelectObject(pOldpen);
     //删除新画笔
     newpen.DeleteObject();



}

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中应该怎么写代码呢? 您可以按照以下代码进行操作: ```python # 导入 pandas 和 openpyxl 模块 import pandas as pd from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment from openpyxl.utils.dataframe import dataframe_to_rows from openpyxl import Workbook # 创建DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}) # 创建Excel文件对象 wb = Workbook() # 选择工作表 ws = wb.active # 将 DataFrame 内容添加到工作表 for r in dataframe_to_rows(df, index=False, header=True): ws.append(r) # 设置标题行的单元格格式 font = Font(name='Calibri', size=11, bold=True) fill = PatternFill(patternType='solid', fgColor='B7E1CD') border = Border(left=Side(style='medium'), right=Side(style='medium'), top=Side(style='medium'), bottom=Side(style='medium')) alignment = Alignment(horizontal='center', vertical='center') for cell in ws[1]: cell.font = font cell.fill = fill cell.border = border cell.alignment = alignment # 设置表格边框 rows = ws['A1':f'{ws.max_column}{ws.max_row}'] for row in rows: for cell in row: cell.border = border # 保存文件 wb.save('example.xlsx') ``` 其中,设置标题行的单元格格式分别是: - 字体:Calibri,大小为11,加粗; - 背景颜色:浅蓝色(RGB为(183, 225, 205)); - 边框:四周边框为medium粗细。 设置表格边框需要遍历每一个单元格,并将其边框设为同样的值。 最后,使用`.save()`方法将生成的Excel文件保存至指定路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值