第三章 在窗口中显示文本
本章将讲述如何在主窗口的活动区域内显示文本连同如何重新显示主窗口,由于不同的应用程式主窗口可能不相同,因此需要在设计应用程式时,需要定义自己的主窗口显示。
3.1 在窗口中绘制文本
您能够在主窗口的活动区域内显示用户需要的文本,当然,您应该在主窗口类对象中定义一个成员函数来实现该方式。假如您不是在应用程式对象中执行该操作,您必须指定主窗口类对象的指针。方法如下:
void TlfrWindow::ShowText(void)
{
setcolor(FTColor);
outtextxy(w1,Left 10,Top 5,”Show text”);
}
需要说明的是,由于Object UNIX Class Library已封装了curses屏幕库操作,您能够直接调用他提供的函数对屏幕直接操作而不管curses的虚拟窗口指针连同颜色配置。第一行的setcolor函数调用引用的FTColor是主窗口的数据成员,在实例化主窗口类TlfrWindow时,已配置好主窗口的前景颜色和背景颜色连同窗口的坐标和长度和宽度。所以从派生类中,您已继承了这些属性。
第二行的outtextxy函数也是封装了的curses库的显示文本操作,该函数执行在窗口的某个位置用当前颜色显示文本。其中的w1参数是默认的curses库的屏幕窗口的指针,任何的屏幕操作系统已默认就是w1屏幕curses窗口,第二个参数连同第三个参数是显示的相对坐标列和行,第四个参数是要显示的内容。
假如您不在主窗口类成员函数定义显示的内容,您必须指定主窗口类的指针,例如,您在TLfrApplication类中定义一个函数来完成以上操作,则方法如下:
void TlfrApplication::ShowTest(void)
{
setcolor(MainWindow->FTColor);
outtextxy(w1,MainWindow->Left 10,MainWindow->Top 5,”text”);
}
3.2 清屏
另一个能够添加到文本绘制程式中的功能是清屏。对于菜单项选择或某些用户操作,读者也许需要强制清屏。
我们在主窗口类中定义一个成员函数来完成该操作。
Void TlfrWindow::Clear(void)
{
bar(w1,Left 2,Top 1,Width-4,Height-2,BKColor);
}
其中,bar函数也是由Object UNIX Class Library提供给用户的一个采用某种颜色画屏幕矩形区域的函数,第一个参数是屏幕curses窗口的指针,第二个参数和第三个参数是矩形左上角的坐标:列和行,第四个参数和第五个参数是矩形的长度和宽度,第六个参数是矩形填充的颜色。
3.3 重新显示主窗口
当用户在执行完某种操作后,也许需要重新绘制主窗口,您能够执行主窗口类的成员函数Show来完成该操作,方法如下:
void TlfrWindow::ReShowWindow(void)
{
TWindow::Show();
}
3.4 定义用户自己的主窗口
由于不同的应用程式有自己不同的主窗口显示,所以,对用户来说,需要定制自己的处窗口,在Object UNIX Class Library系统提供的主窗口显示中,只采用读者已定义好的前景和背景颜色绘制窗口边框和填充颜色,显示标题连同主菜单和信息行,这些基本需要也许不能满足用户自己的需要。例如,用户想在主窗口的中间位置显示版权信息,则需要用户自己定义主窗口的显示函数,您必须从新定义TWindow类提供的虚拟函数Show。方法如下:
void TlfrWindow::Show(void)
{
TWindow::Show();
setcolor(FTColor);
outtextxy(w1,Left 10,Top 5,”Object UNIX Class Program”);
outtextxy(w1,Left 10,Top 6,”All Right Reserved”);
}
其中,第一行调用基类TWindow系统的主窗口显示,以下三行接着在主窗口的中间显示一些用户的文本。
假如用户想重新定义处窗口的显示方式,则用户就无需调用TWindow::Show()函数,任何的主窗口边框,标题连同菜单就得用户自己显示,当然,用户没有这个必要,因为,Object UNIX Class Library已替您想到您该想到的事情了。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




