M8 中设置文字属性的两种方法对比和分析

本文介绍了在M8平台上使用两种不同方法设置字体的过程。一种是通过GetFont函数快速设置,另一种是利用LOGFONT结构体进行更详细的字体配置。此外,还提供了从资源文件加载字符串的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 M8 是基于WinCE的开发平台,但是是那种减肥版的,很多功能都不能用,比如CString这个类,只要包含#include <afx.h> 则模拟器就会死在进程创建的地方,这个应该是winCE不支持。今天试验了两种设置字体并显示的方法,下面一一列举:

1.GetFont()的方法,具体使用如下:

HFONT hfont = FontHelper::GetFont(80);//80大小的字体
 HFONT hOldFont = (HFONT)SelectObject(hdcMem, hfont);//设置到DC
 int bkMode = SetBkMode(hdcMem, TRANSPARENT);//设置模式
 COLORREF color = SetTextColor(hdcMem, RGB(255, 255, 255));//设置颜色
 TCHAR szTitle[250];                    // The title bar text
 CMzRect rcText(0, 0, 444, 444);//注意MZ的Rect是左上角坐标和右下角坐标,没有宽和高
 HINSTANCE hInstance = GetModuleHandle(0);//获取hInstance,这个和windows编程一样
 LoadString(hInstance,IDS_STRING130,szTitle,250);//从资源string table里面获得文字
 DrawText(hdcMem, szTitle, _tcslen(szTitle), rcText, DT_CENTER);画到屏幕上

 

2.使用LOGFONT设置字体

CMzFont hFont;
 LOGFONT  logFont; //创建LOGFONT的数据
 memset(&logFont,0,sizeof(LOGFONT)); // 清零
 logFont.lfHeight=30; //设置高度这个等效于GetFont
 logFont.lfWeight = 15;设置字体的重量,也就是粗细
 wcscpy(logFont.lfFaceName,L"Arial");  //给他设置字体名称
 hFont.CreateFontIndirect(&logFont);    ////创建字体

//下面基本一样
 SelectObject(hdcMem,hFont);  //

 int bkMode = SetBkMode(hdcMem, TRANSPARENT);
 COLORREF color = SetTextColor(hdcMem, RGB(255, 0, 0));
 TCHAR szTitle[250];                    // The title bar text
 CMzRect rcText(0, 0, 720, 480);
 HINSTANCE hInstance = GetModuleHandle(0);
 LoadString(hInstance,IDS_STRING_GAMERULE,szTitle,250);

 DrawText(hdcMem, szTitle, _tcslen(szTitle), rcText, DT_LEFT);

 

 

可以看到两种方法都是可以实现DrawText,第一种可以用于简单的设置,只要一个函数就搞定,第二种呢可以设置一些详细LOGFONT  里面的属性,还有宽度啊什么的,具体还没试验。。

 

 

以上就是设置字体的两种方法,同时提供了如何从string table中获得字符串的方法

HINSTANCE hInstance = GetModuleHandle(0);
 LoadString(hInstance,IDS_STRING_GAMERULE,szTitle,250);

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值