回 目 录
上 一 章 下 一 章

# 第五章：窗口机制简介

# （A Word about Windows）

  在我们进入数以万计的CURSES函数以前，让我们先了解一下窗口（windows）的知识。关于窗口机制的详细信息我们会在以后的章节中详细介绍。这一章只是一些基础的知识，为了给讲解输入输出函数作铺垫。当然，在现在就树立一个窗口的概念是很有好处的。

  窗口实质上是由CURSES系统定义的一个假想的屏幕。这种窗口并不像Windows平台上的窗口，这些窗口没有边框。当CURSES初始化的时候，它会默认创建一个叫做stdscr的窗口。这个窗口的大小一般是80列，25行的屏幕（根据显示器或者显卡的不同，可能会出现不同的大小）如果你运行简单的任务，比如打印几个字符串、输入一些数据等等……这样的单窗口完全可以满足你的需要。当然，你也可以通过窗口系统的函数创建你自己的窗口。

举个例子，如果你调用以下函数：

    	printw(“Hi! There!”);
    	refresh();

它会在stdscr上的当前光标位置输出“Hi! There!”。同样，调用refresh()函数，它只更新stdscr上的缓冲区。

  例如，你已经建立了一个叫做win的窗口。你要在这个窗口上输出以上的内容。只需要在普通的函数前添加w前缀就可以了。同时，函数中的参数也要相应的变化（要指明你所要显示信息的窗口）：

    	wprintw(win, "Hi There !!!");
    	wrefresh(win);

你将在这份文档的其余部分看到，这些函数有相同的命名规则。

    	printw(string);            	/* 在stdscr的当前光标位置打印字符串string */
    	mvprintw(y, x, string);	   	/* 将字符串string打印在坐标(y,x)处 */
    	wprintw(win, string);		/* 在窗口win的当前光标位置打印字符串string */
    	mvwprintw(win, y, x, string);	/* 移动到窗口win的(y,x)然后打印字符串string */

没有w前缀的函数在调用时被扩展为以stdscr作为当前窗口的函数。

回 目 录
上 一 章 下 一 章