如何通过突出显示文本来模拟按钮按下?

时间:2013-12-28 11:25:05

标签: c highlighting tui

我正在使用Xver on Mavericks在c中开发一个小型控制台计算器项目。我已经弄明白了如何检测一个击键,现在我需要一种方法来突出显示文本,比如改变它的背景颜色等等,所以当用户按下一个键时,1例如计算器上的那个键就是只要他拿着钥匙突出显示,创建一个漂亮的按钮推模拟,但我不知道如何,任何想法?:

#include <stdio.h>
#include <unistd.h>
#include <termios.h>


char myGetch() { // an alternative getch function
    char buf = 0;
    struct termios old = {0};
    if (tcgetattr(0, &old) < 0)
        perror("tcsetattr()");
    old.c_lflag &= ~ICANON;
    old.c_lflag &= ~ECHO;
    old.c_cc[VMIN] = 1;
    old.c_cc[VTIME] = 0;
    if (tcsetattr(0, TCSANOW, &old) < 0)
        perror("tcsetattr ICANON");
    if (read(0, &buf, 1) < 0)
        perror ("read()");
    old.c_lflag |= ICANON;
    old.c_lflag |= ECHO;
    if (tcsetattr(0, TCSADRAIN, &old) < 0)
        perror ("tcsetattr ~ICANON");
    return (buf);
}

int main(int argc, const char * argv[]) {
    // printing a simple box
    printf(" ⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼\n");
    printf("⎹⎹    press (q) to quit.    ⎸⎸\n");
    printf("⎹⎹⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎸⎸\n");
    printf("⎹⎹⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎸⎸\n");
    printf("⎹⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎸\n");
    printf("⎹  C  ⎸ ⎸ ±  ⎸ ⎸ ÷  ⎸ ⎸  ✕   ⎸\n");
    printf("⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎼⎼⎸\n");
    printf("⎹  7  ⎸⎹  8  ⎸⎹  9  ⎸⎹   -   ⎸\n");
    printf("⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎼⎼⎸\n");
    printf("⎹  4  ⎸⎹  5  ⎸⎹  6  ⎸⎹   +   ⎸\n");
    printf("⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎼⎼⎸\n");
    printf("⎹  1  ⎸⎹  2  ⎸⎹  3  ⎸⎹       ⎸\n");
    printf("⎹     ⎸⎹     ⎸⎹     ⎸⎹       ⎸\n");
    printf("⎹⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺ ⎸⎹   =   ⎸\n");
    printf("⎹      0    ⎹ ⎹  .  ⎸⎹       ⎸\n");
    printf("⎹           ⎹ ⎹     ⎸⎹       ⎸\n");
    printf(" ⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺\n");
    char c;
    c = myGetch() ;
    printf("%c\n",c);
    return 0;
}

0 个答案:

没有答案