如何设置字体和字体大小呢?

szcc 2003-12-02 04:01:51
static HDC hDC;
hDC=GetDC(0) ;
SetBkMode (hDC,0);
SelectObject(hDC,GetStockObject(SYSTEM_FONT)) ;
SetTextColor(hDC,RGB(255,0,0)) ;
TextOut(hDC,10,100,"231231231231231231",18 ) ;

ReleaseDC(0,hDC) ;
但该如何自由设置设置字体和字体大小呢?
...全文
371 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoruomou 2003-12-02
  • 打赏
  • 举报
回复
Label->Font就行了
如果是动态生成,那么每个Label定义一次就行了
netsys2 2003-12-02
  • 打赏
  • 举报
回复
直接使用API的TextOut很麻烦,

你得先产生一个字体:
HFONT CreateFont(

int nHeight, // logical height of font
int nWidth, // logical average character width
int nEscapement, // angle of escapement
int nOrientation, // base-line orientation angle
int fnWeight, // font weight
DWORD fdwItalic, // italic attribute flag
DWORD fdwUnderline, // underline attribute flag
DWORD fdwStrikeOut, // strikeout attribute flag
DWORD fdwCharSet, // character set identifier
DWORD fdwOutputPrecision, // output precision
DWORD fdwClipPrecision, // clipping precision
DWORD fdwQuality, // output quality
DWORD fdwPitchAndFamily, // pitch and family
LPCTSTR lpszFace // pointer to typeface name string
);

然后
HGDIOBJ SelectObject(

HDC hdc, // handle of device context
HGDIOBJ hgdiobj // handle of object
);

最后还得:
BOOL DeleteObject(

HGDIOBJ hObject // handle to graphic object
);
(这些都可以在WINDOWS SDK中找到函数说明)

但在CB中,已经把这些集成在一起了:
Form1->Canvas->Font->Name = CBFontName->Text;// 字体
Form1->Canvas->Font->Charset = GB2312_CHARSET;
Form1->Canvas->Font->Height = -1 * height;
Form1->Canvas->Font->Style = TFontStyles()<< fsBold;
Form1->Canvas->TextOut(1,1,"12344");

chifengwatch 2003-12-02
  • 打赏
  • 举报
回复
//给你段代码自己研究吧。看看MSDN。
HWND desk=GetDesktopWindow();
HDC dskDC=GetWindowDC(desk);

char *msg="时间到啦";
//定义字体的属性
LOGFONT fontRect;
memset(&fontRect,0,sizeof(LOGFONT));

fontRect.lfHeight=-50; //字体的高度
fontRect.lfWeight=FW_HEAVY;//字体的粗细
lstrcpy(fontRect.lfFaceName,"宋体");

HFONT hFont=CreateFontIndirect(&fontRect); //创建字体
HFONT hOld=::SelectObject(dskDC,hFont);//引用上面的字体

::SetTextColor(dskDC,RGB(0,255,0));
::SetBkColor(dskDC,RGB(255,0,0));
::TextOut(dskDC,GetSystemMetrics(SM_CXSCREEN)/2 - 100 ,GetSystemMetrics(SM_CYSCREEN)/2,msg,lstrlen(msg));

::SelectObject(dskDC,hOld);
::DeleteObject(hFont);
ReleaseDC(desk,dskDC);
我不懂电脑 2003-12-02
  • 打赏
  • 举报
回复
Form->Font这个属性。

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧