当前位置:硬件测评 > vs2010选择什么字体好_

vs2010选择什么字体好_

  • 发布:2023-09-29 14:17

字体设置在工具->选项->环境->字体和颜色。

相信大家在使用VS2010的时候,都会感觉默认的字体不太好看,尤其是看久了,更是眼睛疲劳。这里推荐一个字体。我个人觉得是一个大胆圆润的版本,但是看起来确实比原来的舒服一些。

字体名称为:Fixedsys Excelsior 3.01,下载地址:http://www.sychzs.cn/。

要安装,请转到控制面板,打开字体,然后复制字体并安装。然后打开VS2010,进入工具->选项->环境->字体和颜色,字体中包含Fixedsys Excelsior 3.01。选择字体后记得将字体大小更改为12。

http://www.sychzs.cn/software/239.html

????字体介绍

?????? GDI(Graphics Device Interface),图形设备接口,是Windows提供的一些函数和结构,用于在显示器和打印机上显示图形。我们在MFC开发中经常使用GDI来输出文本或图形图像(当然现在也有GDI+,本教程主要讲解GDI)。文本实际上是一种特殊的图形,无非是按照预先指定的“字体”绘制的图形。

??????字体通常用来指定字符集中每个字符的形状和其他外观特征,如字母、数字、标点符号等。窗口创建后,如果满足以下条件,一般会使用系统字体作为默认字体:没有具体指定。我们可以使用API​​函数GetStockObject(SYSTEM_FONT)来获取系统字体的句柄。

??????CF字体类

?????? CFont类封装了Windows图形设备接口(GDI)字体,并提供了操作字体的成员函数。

??????为了使用CFont对象,首先构造一个CFont对象,然后通过调用CreateFont、CreateFontIndirect、CreatePointFont或CreatePointFontIndirect将Windows字体与这个CFont对象关联起来,然后使用这个CFont对象的成员函数。字体被操纵。

??????一般来说,使用CreatePointFont或CreatePointFontIndirect比CreateFont或CreateFontIndirect更容易,因为前两者会自动将字体高度的单位从点转换为逻辑单位。

?????????注:“点”是传统的衡量字号大小的单位,来源于英语Point。一般用小写的p表示,俗称“磅”。换算关系为:1p=0.35146mm≈0.35mm,1英寸=72p。

??????让我简单解释一下下面使用的概念:

??????设备上下文是一种Windows数据结构,包含某种设备(如显示器、打印机)的绘图属性信息。有了它,就可以在 Windows 中执行与设备无关的绘图,而无需考虑这一点。设备是显示器还是打印机等。CDC类是设备上下文类。

??????绘图时经常会提到逻辑和物理,比如逻辑单位和物理单位。通俗地说,逻辑单元与具体设备无关。我们甚至可以定制它们,物理单位取决于具体设备。

?????? CFont 类提供了几个用于字体操作的成员函数。下面对各个成员函数进行详细介绍。

??????1. CFont( );?

??????构造一个 CFont 对象。使用前应使用 CreateFont、CreateFontIndirect、CreatePointFont 或 CreatePointFontIndirect 初始化该对象。

??????2、

BOOL CreateFont( ?? int nHeight, ?? int nWidth, ?? int nEscapement, ?? int nOrientation, ?? int nWeight, ?? BYTE bItalic, ?? BYTE bUnderline, ?? BYTE cStrikeOut, ?? BYTE nCharSet , ?? BYTE nOutPrecision, ?? BYTE nClipPrecision, ?? BYTE nQuality, ?? BYTE nPitchAndFamily, ?? LPCTSTR lpszFacename? );

??????通过指定一些特征来初始化 CFont 对象。下面对各个参数进行介绍:

?????? nHeight:指定字体高度(逻辑单位)。共有三个值: >0,字体映射器将高度值转换为设备单位并匹配可用字体的字符元素高度; =0,字体映射器使用默认高度值; <0,字体映射器将高度值转换为设备单位,并使用其绝对值来匹配可用字体的字符高度。 nHeight 转换后的绝对值不应超过 16384 个设备单位。

?????? nWidth:指定字体中字符的平均宽度(逻辑单位)。

?????? nEscapement:指定显示界面垂直线与X轴之间的偏差角度,单位为十分之一度。非垂直线是穿过一行文本中第一个和最后一个字符的直线。

?????? nOrientation:指定每个字符的基线与设备的 X 轴之间的角度(以十分之一度为单位)。

?????? nWeight:指定字体点大小(每 1000 点的墨点像素数)。可以取 0 到 1000 之间的任何整数值。

?????? bItalic:指定字体是否为斜体。

?????? bUnderline:指定字体是否带下划线。

?????? bStrikeOut:指定字体是否有删除线。

?????? nCharSet:指定字体的字符集。预定义字符集:

?????? ANSI_CHARSET;BALTIC_CHARSET;CHINESEBIG5_CHARSET;DEFAULT_CHARSET;EASTEUROPE_CHARSET; GB2312_CHARSET; GREEK_CHARSET;HANGUL_CHARSET; MAC_CHARSET; OEM_CHARSET;俄罗斯_字符集; SHIFTJIS_CHARSET;SYMBOL_CHARSET;土耳其_字符集。韩语 Windows:JOHAB_CHARSET;中东Windows:HEBREW_CHARSSET、ARABIC_CHARSET;泰语 Windows:THAI_CHARSET。应用程序可以使用DEFAULT_CHARSET来允许字体名称和大小完全指定逻辑字体。如果指定的字体名称不存在,则可能会被任何字符集的字体替换,因此为避免出现不可预测的结果,应谨慎使用DEFAULT_CHARSET。

?????? nOutPrecision:指定输出精度。输出精度定义了输出与所需字体高度、宽度、字符方向、偏移、间距等的接近程度,其值及含义如下(只能选其一):   

?????? OUT_CHARACTER_PRECIS;不曾用过。   ?????? OUT_DEFAULT_PRECIS:指定默认字体映射器状态。   ?????? OUT_DEVICE_PRECIS:当系统中存在多个使用相同名称的字体时,指示字体映射器选择设备字体。   ?????? OUT_OUTLINE_PRCIS:在 Windows NT 中,该值指示字体映射器从 TrueType 和其他基于边框的字体中进行选择。   ?????? OUT_RASTER_PRECIS:当系统中存在多个使用相同名称的字体时,指示字体映射器选择光栅字体。   ?????? OUT_STRING_PRECIS:字体映射器不使用该值,但在枚举光栅字体时返回。    OUT_STROKE_PRECIS:字体映射器不使用,但在枚举 TrueType 字体、其他基于边框的字体和矢量字体时将返回它。   ?????? OUT_TT_ONLY_PRECIS:指示字体映射器仅从 TrueType 字体中进行选择。如果系统中未安装 TrueType 字体,字体映射将返回默认状态。   ?????? OUT_TT_PRECIS:当系统中存在多个同名字体时,指示字体映射器选择 TrueType 字体。应用程序可以使用 OUT_DEVICE_PRECIS、OUT_RASTER_PRECIS 和 OUT_TT_PRECIS 值来控制当操作系统包含多个与给定名称同名的字体时字体映射器如何选择字体。例如,如果操作系统同时包含名为 Symbol 的光栅字体和 TrueType 字体,则指定 OUT_TT_PRECIS 会导致字体映射器选择 TrueType 模式(指定 OUT_TT_ONLY_PRECIS 会强制字体映射器选择 TrueType 字体,尽管这会给 TrueType 字体带来不同的效果)姓名)。

?????? nClipPrecision:指定剪切精度。裁剪精度定义如何裁剪超出裁剪区域的字符。其取值及含义如下(可取一个或多个值):

  CLIP_DEFAULT_PRECIS:指定默认剪辑状态。 ???? CLIP_CHARACTER_PRECIS:未使用。    CLIP_STROKE_PRECIS:字体映射器不使用,但在枚举光栅字体、矢量字体或 TrueType 字体时将返回它。在Windows环境中,为了确保兼容性,枚举字体时始终返回该值。   ?????? CLIP_MASK:未使用。 ???? CLIP_EMBEDDED:必须使用此标志才能使用嵌入式只读字体。   ?????? CLIP_LH_ANGLES:使用此值时,所有字体旋转都取决于坐标系位于左侧还是右侧。如果不使用该值,设备字体始终逆时针旋转,但其他字体的旋转取决于坐标系的方向。   ?????? CLIP_TT_ALWAYS:未使用。

?????? nQuality:指定字体的输出质量。输出质量定义了 GDI 将逻辑字体属性与实际物理字体匹配的仔细程度。其取值及含义如下(选其一):

?????? DEFAULT_QUALITY:字体的外观并不重要。   ?????? DRAFT_QUALITY:字体外观不如 PROOF_QUALITY 重要。使用 PROOF_QUALITY 时,对于 GDI 光栅字体,缩放处于活动状态,这意味着可以使用多种字体大小,但质量可能不高,如果需要,可以组合粗体、斜体、下划线和删除线字体。   ?????? PROOF_QUALITY:字符质量比逻辑字体字体属性的精确匹配更重要。对于 GDI 扫描字体,缩放处于活动状态并选择最接近的尺寸。尽管使用 PROOF_QUALITY 时所选的字体大小并不完全匹配,但字体质量很高并且没有外观失真。如有必要,可以组合粗体、斜体、下划线和删除线字体。

?????? nPitchAndFamily:指定字体间距和字体系列。低2位用于指定字体的间距,可以取以下值之一:DEFAULT_PITCH、FIXED_PITCH、VARIABLE_PITCH。高 4 位指定字体系列。数值及含义如下(选其一):

?????? FF_DECORATIVE:新字体,例如古英语。 ???? FF_DONTCARE:不关心或不知道。   ?????? FF_MDERN:具有固定笔画宽度的字体,带或不带衬线。例如 Pica、Elite 和 Courier New。   ?????? FF_ROMAN:具有不同笔画宽度的字体,带有衬线。例如 MS Serif。    ??????FF_SCRIPT:一种设计得像手写体的字体。比如楷书和草书。    ??????FF_SWISS:笔划宽度变化的字体,无斜线。例如 MS Sans Serif。   

??????应用程序可以使用 OR 运算符组合字符间距和字体系列,以将值分配给 nPitchAndFamily。   

??????字体系列描述了字体的一般外观,并且可以在所有确切的字体不可用时用于指定字体。

?????? lpszFacename:指定字体的字样名称的字符串。该字符串的长度不应超过 30 个字符。 Windows函数EnumFontFamilies可以枚举当前所有可用字体的字体名称。如果 lpszFacename 为 NULL,GDI 使用与设备无关的字体​​。

?? ???返回值:成功则该函数返回TRUE,否则返回FALSE。

?????? CreateFont函数初始化CFont对象后,可以选择该字体作为任何设备上下文的字体。该函数并不创建新的Windows GDI字体,它只是从GDI的物理字体中选择最匹配的字体。创建逻辑字体时,大部分参数都可以使用默认值,但一般情况下,会给出参数nHeight和lpszFacename的指定值。如果nHeight和lpszFacename参数没有设置值,则创建的逻辑字体将与设备相关。 。使用CreateFont函数初始化CFont对象后,可以使用CDC::SelectObject函数为设备上下文选择字体,也可以在不再使用CFont对象时将其删除。

??????3. BOOL CreateFontIndirect(const LOGFONT* lpLogFont);

? ????通过 LOGFONT 结构变量给出的特征来初始化 CFont 对象。参数lpLogFont是指向LOGFONT结构变量的指针。该LOGFONT结构变量定义了逻辑字体的特征。 LOGFONT结构体的定义可以参见VS2010/MFC编程简介第18部分(对话框:字体对话框)。

??????4. BOOL CreatePointFont(int nPointSize,LPCTSTR lpszFaceName,CDC* pDC = NULL);

?? ???此函数提供了一种从指定字体和点数创建字体的简单方法。参数含义如下:

?? ??? nPointSize:指定字体高度(以十分之一磅为单位)。例如,如果nPointSize为120,则表示12点字体。

?? ??? lpszFacename:指定字体的字样名称的字符串。该字符串的长度不应超过 30 个字符。 Windows函数EnumFontFamilies可以枚举当前所有可用字体的字体名称。如果 lpszFacename 为 NULL,GDI 使用与设备无关的字体​​。

?????? pDC:指向CDC对象,用于将nPointSize指定的高度转换为逻辑单位。如果为NULL,则使用屏幕设备上下文进行转换。

??????5. BOOL CreatePointFontIndirect(const LOGFONT* lpLogFont,CDC* pDC = NULL);

?? ???此函数是通过指定字体和点数来创建字体的间接方法。参数lpLogFont指向一个LOGFONT结构变量。此 LOGFONT 变量定义逻辑字体的特征。它的 lfHeight 成员以十分之一点为单位,而不是逻辑单位。参数pDC指向CDC对象,用于将lfHeight表示的高度转换为逻辑单位。如果为NULL,则使用屏幕设备上下文进行转换。

??????该函数与CreateFontIndirect非常相似,但不同的是LOGFONT变量中的lfHeight成员的单位是十分之一点而不是逻辑单位。

??????6.静态 CFont* PASCAL FromHandle(HFONT hFont);

??????从Windows GDI字体的HFONT句柄中获取相应的CFont对象指针。 hFont 参数是 Windows 字体的 HFONT 句柄。如果成功,则返回指向 CFont 对象的指针,否则返回 NULL。

??????7. int GetLogFont(LOGFONT * pLogFont);

??????获取 CFont 对象的 LOGFONT 结构的副本。参数pLogFont指向用于接收字体信息的LOGFONT结构变量。成功时返回非零,否则返回零。

??????这一段的内容有点无聊。第一时间你可以粗略地看一下。也可以等以后学会了字体的使用之后再回来仔细看看。小鸡啄米也欢迎大家在未来的发展过程中回来回顾。

使用的字体:Fixedsys Excelsior 3.01

1。首先下载字体:http://www.sychzs.cn/?

2。安装字体:控制面板->字体,将下载的文件复制进去。

3。打开VS2010,工具->选项->环境->字体和颜色,选择Fixedsys字体,选择字体大小为12

4。设置背景颜色:色调=123、饱和度=191、亮度=222、红色=220、绿色=249、蓝色=251

?

详细源码参考:http://www.sychzs.cn/softjc/35702.html

相关文章

热门推荐