阅 读 文 章

SCO UNIX环境下面向对象的程序设计 3

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(hbczjzc) | 时间:2007-05-27 | 浏览:人次 ]


第三章 在窗口中显示文本
    本章将讲述如何在主窗口的活动区域内显示文本以及如何重新显示主窗口,由于不同的应用程序主窗口可能不一样,因此需要在设计应用程序时,需要定义自己的主窗口显示。

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);
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 对象 程序设计 面向 环境 窗口 显示 用户 函数 定义 需要

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.