5

タイトルですべてを説明する必要があるため、次のような色のペアを作成したとします。

init_pair(1, COLOR_RED, COLOR_BLACK);

そして、次のように再定義したいと思いました。

init_pair(1, COLOR_GREEN, COLOR_BLUE);

これは機能しませんが、それを可能にする他の機能はありますか? または、色のペアを使用せずに明示的な前景色/背景色を使用できる関数はありますか?

事前に感謝します。これが十分に明確でない場合はお知らせください。


編集: 試した後、 を使用してペアを再定義できinit_pairます。コードの問題は別の場所にありました。

4

1 に答える 1

2

一度に最大 7 つのカラー ペアを定義し、必要に応じてすべてを順番に表示できます。番号を変更して更新するだけです。例えば。(3 で行います) 7 の例の e プリントアウトについては、こちらを参照してください

 #include  <curses.h>

 int COLOR_PAIR (int PAIR_NUMBER)

 init_pair(1, COLOR_GREEN, COLOR_RED);
 init_pair(2, COLOR_GREEN, COLOR_BLUE);
 init_pair(3, COLOR_RED, COLOR_BLUE);

 for (i=1, i <=3, i++){
   attroffset(A_BOLD)
   attrset(COLOR_PAIR(i))
   refresh();
   sleep(1);
}

多くのペアがあり、2 番目の色が常に同じであるか、各ペアで最初の色が一意である場合は、 attron() を使用してオンにすることができます。(これは私たちの定義では機能しません)

attron の例をここで見ることができます

于 2013-02-01T04:56:10.917 に答える