📄 fontmng.c
字号:
*wWidth -= wTempWidth1; //减掉多余的不足一字符的宽度
*wHeight = wFontHeight;
return (UINT16)((UINT32)p1 - (UINT32)p2);
}
/********************************************************************\
Function: get string size
Input: fontlibID: font id
width/height: return string size
lpString: long pointer to the string
Output: TRUE: success
FALSE: some fonts not exist
Notes: //正常情况:返回的宽是所有字符宽之和 高等于行高
Update:
Date Name VERSION Description
============ ========== ======= ===========================
2007-3-29 lichao v1.1 modified
2007-4-09 Liang Ruhui v1.1 modified
\********************************************************************/
BOOL FontGetStringRect(UINT16 *width, UINT16 *height, UINT8 *lpString)
{
return _FontGetStringRect(wCurrentFontLib,width,height,lpString);
}
/************************************************************************/
/* 函数名称: IsSmallFont */
/* 函数描述: 判断是否为半角自造字 */
/* 当前版本: 1.0 */
/* 作 者: gaolinhui */
/* 输入参数: */
/* wCode - 字符编码(高字节为前码,低字节为后码) */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* TRUE/FALSE */
/* 备注: 0x8120 ~ 0x913f, 0xF020 ~ 0xF02C */
/* 现将判断依据改为:先检查该码所在区 然后看该区字体的宽和高是否相等。 */
/* 以免编码改变 要修改程序 */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 gaolinhui v1.0 创建 */
/************************************************************************/
BOOL IsSmallFont(UINT32 wCode)
{
UINT8 byCodeL, byCodeH;
byCodeL = (UINT8)wCode;
byCodeH = (UINT8)(wCode>>8);
if(byCodeH >= 0x81 && byCodeH <= 0xEF && byCodeL >= 0x20 && byCodeL <= 0x2f)
return TRUE;
else if(byCodeH >= 0xF0 && byCodeH <= 0xFE && byCodeL >= 0x20 && byCodeL <= 0x2C)
return TRUE;
else
return FALSE;
}
/************************************************************************/
/* 函数名称: IsUserFont */
/* 函数描述: 判断是否为自造字 */
/* 当前版本: 1.0 */
/* 作 者: gaolinhui */
/* 输入参数: */
/* wCode - 字符编码(高字节为前码,低字节为后码) */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* TRUE/FALSE */
/* 备注: 0x8120 ~ 0x913f, 0xF020 ~ 0xF02C */
/* 现将判断依据改为:先检查该码所在区 然后看该区ID 是否在系统字库后。 */
/* 以免编码改变 要修改程序 */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 gaolinhui v1.0 创建 */
/* 2007-03-29 lichao v1.1 modified */
/* 2007-04-09 Liang Ruhui v1.1 modified */
/************************************************************************/
BOOL IsUserFont(UINT32 wCode)
{
UINT8 byCodeL = wCode&0xff;
UINT8 byCodeH = wCode>>8;
INT i;
for(i = ZZZ1; i < FONTLIBNUM; i++) //自带建库编码在所有标准(GBK5)后连续存放. 以后增加自带字库也排在(GBK5)后.
{
UINT16 wCodeStart = aPrjFontLib[wCurrentFontLib*FONTLIBNUM+i].wCodeStart; //内码起始位置
UINT16 wCodeEnd = aPrjFontLib[wCurrentFontLib*FONTLIBNUM+i].wCodeEnd; //内码结束位置
if(byCodeL >= (wCodeStart&0xFF) && byCodeL <= (wCodeEnd&0xFF) &&
byCodeH >= (wCodeStart>>8) && byCodeH <= (wCodeEnd>>8))
{
return TRUE;
}
}
return FALSE;
}
/************************************************************************/
/* 函数名称: SetFontUnderlineStyle */
/* 函数描述: 设置字体下划线 */
/* 当前版本: 1.1 */
/* 作 者: Liang Ruhui */
/* 输入参数: */
/* NONE */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* NONE */
/* 备注: */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 Liang Ruhui v1.1 创建 */
/************************************************************************/
VOID SetFontUnderlineStyle(VOID)
{
SetUnderlineStyle();
}
/************************************************************************/
/* 函数名称: ClrFontUnderlineStyle */
/* 函数描述: 取消字体下划线 */
/* 当前版本: 1.1 */
/* 作 者: Liang Ruhui */
/* 输入参数: */
/* NONE */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* NONE */
/* 备注: */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 Liang Ruhui v1.1 创建 */
/************************************************************************/
VOID ClrFontUnderlineStyle(VOID)
{
ClrUnderlineStyle();
}
/************************************************************************/
/* 函数名称: SetFontInvertStyle */
/* 函数描述: 设置字体反白 */
/* 当前版本: 1.1 */
/* 作 者: Liang Ruhui */
/* 输入参数: */
/* NONE */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* NONE */
/* 备注: */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 Liang Ruhui v1.1 创建 */
/************************************************************************/
VOID SetFontInvertStyle(VOID)
{
SetInvertStyle();
}
/************************************************************************/
/* 函数名称: ClrFontInvertStyle */
/* 函数描述: 取消字体反白 */
/* 当前版本: 1.1 */
/* 作 者: Liang Ruhui */
/* 输入参数: */
/* NONE */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* NONE */
/* 备注: */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 Liang Ruhui v1.1 创建 */
/************************************************************************/
VOID ClrFontInvertStyle(VOID)
{
ClrInvertStyle();
}
/************************************************************************/
/* 函数名称: SetFontStyle */
/* 函数描述: 设置字体风格 */
/* 当前版本: 1.1 */
/* 作 者: Liang Ruhui */
/* 输入参数: */
/* wStyle - 字体新风格 */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* WORD - 字体老风格 */
/* 备注: */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 Liang Ruhui v1.1 创建 */
/************************************************************************/
WORD SetFontStyle(WORD wStyle)
{
WORD wRes = wFontStyle;
wFontStyle = wStyle;
return wRes;
}
/************************************************************************/
/* 函数名称: ClrFontInvertStyle */
/* 函数描述: 取消字体风格 */
/* 当前版本: 1.1 */
/* 作 者: Liang Ruhui */
/* 输入参数: */
/* NONE */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* NONE */
/* 备注: */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2006-02-25 Liang Ruhui v1.1 创建 */
/************************************************************************/
VOID ClrFontStyle(VOID)
{
wFontStyle = 0;
}
/************************************************************************/
/* 函数名称: FontGetCharCodeWidth */
/* 函数描述: 获取字符的编码宽度 */
/* 当前版本: 1.1 */
/* 作 者: Liang Ruhui */
/* 输入参数: */
/* 字符指针 */
/* 输出参数: */
/* NONE */
/* 返回值 : */
/* 字符的编码宽度 */
/* 备注: */
/* =====================================================================*/
/* 日期 人员 版本 描述 */
/* =====================================================================*/
/* 2007-07-02 Liang Ruhui v1.1 创建 */
/************************************************************************/
INT FontGetCharCodeWidth(UINT8 *str)
{
INT width = 0;
if((str[0] == 0x00) || (str == NULL)){
width = 0;
}
else if(str[0] < 0x80){ //ASCII
width = 1;
}
else if(((str[0] >= 0x81) && (str[0] <= 0xFE)) &&
((str[1] >= 0x30) && (str[1] <= 0x39))) //四字节编码
{
width = 4;
}
else{ //二字节编码
width = 2;
}
return width;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -