|
pad 的应用举例
测试代码:
#include <unistd.h>
#include <stdlib.h>
#include <curses.h>
int main()
{
WINDOW *pad_ptr;
int x, y;
int pad_lines;
int pad_cols;
char disp_char;
initscr();
/*显示平面比终端的长宽都大 50 个字符宽度*/
pad_lines = LINES + 50;
pad_cols = COLS + 50;
pad_ptr = newpad(pad_lines, pad_cols);
disp_char = 'a';
for(x = 0; x < pad_lines; x++) {
for(y = 0; y < pad_cols; y++) {
mvwaddch(pad_ptr, x, y, disp_char);
if(disp_char == 'z') disp_char = 'a';
else disp_char++;
}
}
mvprintw(0,0, "The MAX LINES On This Terminal Is %d", LINES);
mvprintw(1,0, "The MAX COLS On This Terminal Is %d", COLS);
refresh();
prefresh(pad_ptr, 0, 0, 2, 2, 9, 9);
sleep(2);
prefresh(pad_ptr, LINES + 5, COLS + 7, 5, 5, 21, 19);
sleep(2);
delwin(pad_ptr);
endwin();
exit(EXIT_SUCCESS);
}
说明:
上面我的终端可以容纳24行80列的字符。
由 prefresh(pad_ptr, 0, 0, 2, 2, 9, 9) 可以看到,参数 (0,0) 表示要显示的内容从 (0,0) 坐标起,显示内容的多少限定在(2-9) 行,(2-9) 列这么一块区域里。
prefresh(pad_ptr, LINES + 5, COLS + 7, 5, 5, 21, 19); 上一条语句效果一样,由上可见,{ (LINES+5),(COLS+7) } 表示的字符为 j 。
程序运行如下图所示:
![]() |
|