⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fontmng.c

📁 好记星的控件,包括button,list,对文件操作
💻 C
📖 第 1 页 / 共 4 页
字号:
	*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 + -