Page 1 of 1

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

Posted: Mon Jul 28, 2008 6:27 am
by liuyug
在程序运行中如何更改wxStaticText 和wxTextCtrl的字体和颜色?

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

如何处理?

Posted: Mon Jul 28, 2008 9:49 am
by Loaden
这是设置按钮字体的代码,或许可以参考:

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);

Posted: Tue Jul 29, 2008 2:06 am
by liuyug
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);
我设置字体是成功的,但改完字体后,颜色变了,这个如何解决

Posted: Fri Aug 01, 2008 4:32 am
by 00061205
创建一个wxTextAttr类的对象,在里面设定字体和颜色wxTextAttr::SetTextColour
();wxTextAttr::SetFont()。然后用wxTextCtrl::SetStyle()设定。

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

Posted: Tue Aug 05, 2008 7:40 am
by liuyug
我是在运行中更改字体和颜色。
将SetDefaultStyle和SetStyle都设置为同一个wxTextAttr才解决问题.