CEGUI如何实现按钮控件背景图片的动态改变
发布网友
发布时间:2022-04-30 15:56
我来回答
共1个回答
热心网友
时间:2022-04-20 03:19
静态文本控件StaticText
静态文本控件是一种单项的交互控件,用于显示文本信息,而不能编辑文本信息。通常,在应用程序中使用静态文本控件来显示标题信息。图7.11显示了静态文本控件在控件面板和对话框中的效果。
设置静态文本控件显示的文本非常简单,可以通过属性窗口来实现。在静态文本控件的属性窗口中用户可以直接设置控件文本。
由于静态文本控件通常不需要动态修改文本,因此在设计应用程序时通常利用属性窗口设置文本。但也有其特殊情况,例如在设计一个功能模板时,为了设计的灵活性,不能在设计期就指定控件文本,而需要根据实际情况动态设置控件文本。动态设置控件文本可以调用静态文本类CStatic的SetWindowText方法。这里有一个小问题就是为静态文本控件命名。在第6章中介绍了可以利用类向导来为控件关联一个名称,但是对于静态文本控件来说,它的默认控件ID为IDC_STATIC,使用类向导无法为其命名。
为了将静态文本控件关联一个名称,可以修改静态文本控件默认的控件ID,例如将其修改为IDC_DISCOUNT,这样即可为其命名。
有了控件名称,即可调用SetWindowText方法设置控件文本。
m_Discount.SetWindowText("图书折扣"); //设置控件文本
静态文本控件并不像按钮控件那样直接就支持鼠标单击事件,但在应用程序中有时需要处理静态文本的单击事件。例如,利用静态文本控件显示一个网址,当用户单击网址时需要在浏览器中跳转到指定页面。
为了实现静态文本控件的单击事件,需要在静态文本控件属性窗口中设置Notify属性。
然后在MFC ClassWizard窗口中设置静态文本控件的单击事件。
最后编写静态文本单击事件代码。
void CBook::OnDiscount()
{
CString szUrl;
m_Url.GetWindowText(szUrl);
ShellExecute(NULL, "open", szUrl, NULL, NULL, 1);
}