C指针原理(58)-Ncurses-文本终端的图形

getyx()和move()。getyx()函数其实是一个定义在

ncurses.h 中的宏,它会给出当前光标的位置,需要注意的是我们不能用指针作为参数,只

能传递一对整型变量(前文提到过)。函数move()将光标移动到指定位置

调用attron()函数开始启动文字修饰,当找到“*/”(注释结束处标志)的地方,就会调用attroff()函数停止为后续文字继续添加修饰。

麦好的AI乐园博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/


A_NORMAL 普通字符输出(不加亮显示)

A_STANDOUT 终端字符最亮

A_UNDERLINE 下划线

A_REVERSE 字符反白显示

A_BLINK 闪动显示

A_DIM 半亮显示

A_BOLD 加亮加粗

A_PROTECT 保护模式

A_INVIS 空白显示模式

A_ALTCHARSET 字符交替

A_CHARTEXT 字符掩盖

COLOR_PAIR(n) 前景、背景色设置

在两种修饰属性间加一个“|”字符:

attron(A_BOLD | A_BLINK);

 

dp@dp:~/cursestest % cat 2.c

#include <ncurses.h>

#include <locale.h>

int main(){

//init_pair(short index,short foreground,short background)初始化颜色索引

//attron(COLOR_PAIR(索引号)|属性)

//newwin建立窗口,derwin建立窗口的子窗口(相对于父窗口相对位置),subwin建立窗口的子窗口(相对于根窗口绝对位置)

    setlocale(LC_ALL,"");

    char mesg[]="您的名字:"; /* 将要被打印的字符串信息*/

    char name[80];

    int y,x;

    initscr();//初始化

    mvprintw(1,1,"WIN1");

    mvprintw(2,1,"您好");

    mvprintw(3,1,"%s",mesg);

    getyx(stdscr, y, x);

    move((y+2),2);

    attron(A_REVERSE);

    printw("*********************");

    refresh();

    attroff(A_REVERSE);

    getyx(stdscr, y, x);

    move((y-1),1);

    scanw("%s",name); 

    mvprintw(6,1,"%s好,很高兴认识您", name);

    refresh();

    endwin();//结束

    return 0;   

}

dp@dp:~/cursestest % gcc -lncursesw 2.c -o mytest

dp@dp:~/cursestest % ./mytest

常用色彩

COLOR_BLACK 0 黑色

COLOR_RED 1 红色

COLOR_GREEN 2 绿色

COLOR_YELLOW 3 黄色

COLOR_BLUE 4 蓝色

COLOR_MAGENTA 5 洋红色

COLOR_CYAN 6 蓝绿色, 青色

COLOR_WHITE 7 白色

色彩及样式的设置

int attroff(int attrs);
int wattroff(WINDOW *win, int attrs);
int attron(int attrs);
int wattron(WINDOW *win, int attrs);

 

attrset() 为整个窗口设置一种修饰属性。而 attron()函数只从被调用的地方开始设置。所以 attrset()会覆盖掉你先前为整个窗口设置的所有修饰属性。attr_get() 函数用来取得当前窗口的修饰属性设置以及背景、文字颜色。在这些函数前面加上w,表示可对窗口做修饰,否则就是对stdscr标准输出窗口。

 

#include <locale.h>

#include <ncurses.h>

int main(int argc, char *argv[])

{

        setlocale(LC_ALL,"");

        initscr(); /*启动curses 模式*/

        if(has_colors() == FALSE)

        {

        endwin();

        printf("你的终端不支持色彩!\n");

        return (1);

        }

        start_color(); /*启动color 机制*/

        init_pair(1, COLOR_RED, COLOR_BLACK);

        WINDOW *win1;

        win1=newwin(15,50,1,1);//新窗口(行,列,begin_y,begin_x)

        box(win1,ACS_VLINE,ACS_HLINE);

        wattron(win1,COLOR_PAIR(1));

        mvwprintw(win1,8,21, "彩色的世界...");

        wattroff(win1,COLOR_PAIR(1));

        wrefresh(win1);

        endwin();

        return 0;

}

 

dp@dp:~/cursestest % gcc -lncursesw a.c -o mytest

dp@dp:~/cursestest % ./mytest

麦好的AI乐园博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/


C指针原理(58)-Ncurses-文本终端的图形_第1张图片

你可能感兴趣的:(C指针原理(58)-Ncurses-文本终端的图形)