字体创建和选择

【勇芳软件工作室】汉化HomePreviousNext

以前的Windows版本要求应用程序开发人员提供源代码和对话框模板,以支持显示用户可以从中选择的可用字体的界面。新的Font Common对话框简化了创建和选择过程。通过初始化CHOOSEFONT结构并调用ChooseFont函数,应用程序可以支持以前需要许多代码行的相同字体选择界面。(有关“字体常用”对话框的详细信息,请参阅通用对话框库.)

用户选择

大多数字体创建和选择操作涉及用户。例如,文字处理应用程序让用户为标题,脚注和正文文本选择唯一的字体。用户使用“字体”对话框选择字体后按OK按钮,ChooseFont功能将使用所请求字体的属性初始化LOGFONT结构的成员。要将此字体用于文本输出操作,应用程序必须首先创建一个逻辑字体,然后将该字体选择到其设备上下文中。A 【逻辑字体】是应用程序提供的理想字体描述。开发人员可以通过调用CreateFontCreateFontIndirect函数创建逻辑字体。在这种情况下,应用程序将调用CreateFontIndirect并提供一个指向LOGFONT初始化的LOGFONT结构的指针。一般来说,调用CreateFontIndirect更有效,因为CreateFont需要多个参数,而CreateFontIndirect只需要一个__指向LOGFONT的指针。

在应用程序实际上可以开始使用逻辑字体绘制文本之前,它必须从设备内部存储的字体和资源已经加载到操作系统的字体中找到最接近的匹配项。存储在设备或操作系统中的字体称为【物理字体】.找到与指定逻辑字体最匹配的物理字体的过程称为字体映射。当应用程序调用{??989796036}函数并提供标识逻辑字体的句柄时,会发生此过程。通过使用将所请求的逻辑字体的属性与可用物理字体的属性进行比较的内部算法来执行字体映射。当字体映射算法完成其搜索并确定最接近的可能匹配时,SelectObject函数返回,应用程序可以开始使用新字体绘制文本。

SetMapperFlags功能指定字体映射器算法是否仅搜索具有与物理设备匹配的宽高比的物理字体。器件的宽高比是由该器件上的像素的宽度和高度形成的比率。