跟画刷,区域一样,字体是GDI其中的一个对象,可以使用SelectObject来添加到HDC环境中。
创建字体有两种方法
1CreateFont
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 //字体名称
);
2CreateFontIndirect
HFONT CreateFontIndirect(
CONST LOGFONT* lplf // characteristics
);
看看LOGFONT的定义:
typedef struct tagLOGFONT { // lf
LONG lfHeight; //字体的高度
LONG lfWidth; //字体的宽度
LONG lfEscapement; //字体显示的角度
LONG lfOrientation; //字体的角度
LONG lfWeight; //字体的磅数
BYTE lfItalic; //斜体字体
BYTE lfUnderline; //带下划线的字体
BYTE lfStrikeOut; //带删除线的字体
BYTE lfCharSet; //所需的字符集
BYTE lfOutPrecision; //输出的精度
BYTE lfClipPrecision; //裁减的精度
BYTE lfQuality; //逻辑字体与输出设备的
//实际字体之间的精度
BYTE lfPitchAndFamily; //字体间距和字体集
TCHAR lfFaceName[LF_FACESIZE]; //字体名称
} LOGFONT;
方法一:利用CreateFont方法来创建字体
SelectObject(hdc,CreateFont(0,0,0,0,0,0,0,0,XXCharSet,0,0,0,FIXED_PITCH,NULL));//至于默认值取什么,自己查表,这里不重点讲
方法二:利用CreateFontIndirect方法创建字体(重点讲)
看看代码:
case WM_PAINT ://前面声明了LOGFONT lonfont;
hdc = BeginPaint (hwnd, &ps) ;
GetObject(GetStockObject(SYSTEM_FONT),sizeof(LOGFONT),&logfont);
logfont.lfItalic=true;//使用斜体
logfont.lfHeight=16;//字体高度为16PX
logfont.lfWeight=20;//字体宽度为20PX
logfont.lfCharSet=GB2312_CHARSET;//国标2312
wsprintf(logfont.lfFaceName,TEXT("%s"),TEXT("宋体"));
hfont=CreateFontIndirect(&logfont);//字体为宋体
SelectObject(hdc,hfont);......//后面就是你要输出的东西
下面看看运行结果:
分享到:
相关推荐
CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用 API函数AddFontResource将其加入Windows...
选择相应的字体,生成预览,并自动生成CReateFont函数
自定义字体宽高比例,源码是易语言API函数CreateFont的应用教程。
//本方法是通过裁切的sprite导出字体文件,裁切使用的是unity自带的sprite editor,方便操作。 //另外,裁切之后,每个sprite的名字的最后一个字符对应了ascii码的编码,比如: //0: 我们只要将sprite的名字...
CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用 API函数AddFontResource将其加入Windows...
我当时尝试着使用标准的win32函数CreateFont来创建字体,并且返回字体的句柄。再在CStatic类里面调用SetFont()这个函数来使用字体。但是我没有成功。此外我还使用了LOGFONT结构体和CFont、CLogFont类,但是收效甚微...
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 ...
易语言自定义字体宽高比例源码,自定义字体宽高比例,CreateFont
VC++两种比较常用的设置方式:利用CreatePointFont和利用CreateFont,可供参考。
GDI 字体设置内含每个参数说明及使用方法 方便使用
取字体宽度,取字体高度,GetTextExtentPoint,GetDC,CreateCompatibleDC,CreateFont,MulDiv,GetDeviceCaps,SelectObject,CloseHandle,ReleaseDC,DeleteDC,DeleteObject
易语言API取字体宽度源码,取字体宽度,取字体高度,GetTextExtentPoint,GetDC,CreateCompatibleDC,CreateFont,MulDiv,GetDeviceCaps,SelectObject,CloseHandle,ReleaseDC,DeleteDC,DeleteObject
2 访问createfont.html,F12切换到移动端模式。 2.1 【必要】 先点击创建字模,这时画布会出现方格(可以在源码里改变jg变量的大小),点击方格的不同位置创建笔画。一定要点击,不要拖动。 2.2 【必要】 点击保存...
易语言自定义字体宽、高比例源码,自定义字体宽、高比例,CreateFont