如何更改wxStaticText 和wxTextCtrl的字体和颜色? Topic is solved

这是wxWidgets论坛的中文版本。在这里,您可以用您的母语汉语讨论上面任一子论坛所涉及的所有关于wxWidgets的话题。欢迎大家参与到对有价值的帖子的中英互译工作中来!
Post Reply
liuyug
Experienced Solver
Experienced Solver
Posts: 53
Joined: Wed Jul 09, 2008 4:32 am

如何更改wxStaticText 和wxTextCtrl的字体和颜色?

Post by liuyug » Mon Jul 28, 2008 6:27 am

在程序运行中如何更改wxStaticText 和wxTextCtrl的字体和颜色?

我使用的是SetFont SetForegroundColour
SetForegroundColour还正常,但使用SetFont后,出现问题
1. wxStaticText的对齐方式变成默认,左对齐,我设的是中间
2. wxTextCtrl的颜色变了,变成黑色。

如何处理?

Loaden
I live to help wx-kind
I live to help wx-kind
Posts: 177
Joined: Tue Feb 19, 2008 10:21 am
Location: China

Post by Loaden » Mon Jul 28, 2008 9:49 am

这是设置按钮字体的代码,或许可以参考:

Code: Select all

	wxButton* pShow = new wxButton(this, ID_BTN_SHOW, _T("Start"));
	wxFont font(50, wxFONTFAMILY_ROMAN, wxNORMAL, wxBOLD, false, _T("Comic Sans MS"), wxFONTENCODING_ISO8859_1);
	pShow->SetFont(font);
Life is not fair, get used to it.

liuyug
Experienced Solver
Experienced Solver
Posts: 53
Joined: Wed Jul 09, 2008 4:32 am

Post by liuyug » Tue Jul 29, 2008 2:06 am

Loaden wrote:这是设置按钮字体的代码,或许可以参考:

Code: Select all

	wxButton* pShow = new wxButton(this, ID_BTN_SHOW, _T("Start"));
	wxFont font(50, wxFONTFAMILY_ROMAN, wxNORMAL, wxBOLD, false, _T("Comic Sans MS"), wxFONTENCODING_ISO8859_1);
	pShow->SetFont(font);
我设置字体是成功的,但改完字体后,颜色变了,这个如何解决

00061205
Knows some wx things
Knows some wx things
Posts: 41
Joined: Mon Jun 16, 2008 3:43 am
Location: Beijing, China

Post by 00061205 » Fri Aug 01, 2008 4:32 am

创建一个wxTextAttr类的对象,在里面设定字体和颜色wxTextAttr::SetTextColour
();wxTextAttr::SetFont()。然后用wxTextCtrl::SetStyle()设定。

其实用smith或wxformbuilder的话都是可以设定的。字体是font,字体颜色是foreground。
Regards,

00061205

liuyug
Experienced Solver
Experienced Solver
Posts: 53
Joined: Wed Jul 09, 2008 4:32 am

Post by liuyug » Tue Aug 05, 2008 7:40 am

我是在运行中更改字体和颜色。
将SetDefaultStyle和SetStyle都设置为同一个wxTextAttr才解决问题.

Post Reply