在我们深入研究众多 ncurses 函数之前,让我先澄清一些关于窗口的事情。窗口在接下来的 章节 中详细解释。
窗口是由 curses 系统定义的虚拟屏幕。窗口不是指您通常在 Win9X 平台上看到的带边框的窗口。当 curses 初始化时,它会创建一个名为stdscr它代表您的 80x25(或您正在运行的窗口大小)屏幕。如果您正在执行简单的任务,例如打印一些字符串、读取输入等,您可以安全地使用此单个窗口来满足您的所有目的。您也可以创建窗口并调用显式作用于指定窗口的函数。
例如,如果您调用
printw("Hi There !!!"); refresh(); |
它会在当前光标位置在 stdscr 上打印字符串。同样,调用 refresh() 也仅作用于 stdscr。
假设您已经创建了 窗口,那么您必须调用一个在常用函数名称前添加 'w' 的函数。
wprintw(win, "Hi There !!!"); wrefresh(win); |
正如您将在文档的其余部分看到的那样,函数的命名遵循相同的约定。对于每个函数,通常还有另外三个函数。
printw(string); /* Print on stdscr at present cursor position */ mvprintw(y, x, string);/* Move to (y, x) then print string */ wprintw(win, string); /* Print on window win at present cursor position */ /* in the window */ mvwprintw(win, y, x, string); /* Move to (y, x) relative to window */ /* co-ordinates and then print */ |
通常,不带 w 的函数是宏,它们会扩展为相应的带有 stdscr 作为窗口参数的带 w 函数。