1

Cursesライブラリを利用したシンプルなウィンドウで文字の削除を実装しようとしています。

基本的に、ウィンドウは境界線の次のコードで作成されます。

box(local_win, 0 , 0); // Set the border of the window to the default border style.

その後、バックスペースの処理に進むときは、次のコードを使用して処理します。

initscr();
cbreak();
keypad(window, TRUE);
int ch; // The character pressed by the user.

while((ch = wgetch(window)) != EOF)
{
   switch(ch)
   {
      case KEY_BACKSPACE: // Handle the backspace.
      {
         wdelch(window); // Delete the character at the position in the window.

         wrefresh(window);
         refresh();
      }
   }
}

文字は削除されますが、右側の垂直バーが境界線から引っ張られるため、境界線に穴ができます。ここで何か間違ったことをしているのでしょうか、それとも、境界線を最初の場所に保つために、削除するたびに手動でスペースを挿入する必要がある場合です。

これで助けてくれてありがとう!

4

3 に答える 3

0

はい、垂直バーの直前にスペースを再挿入するか、(これが可能かどうかはわかりませんが)端末の全幅より小さいスクロール領域を設定する必要があります。

于 2012-11-29T02:41:59.453 に答える
0

文字を削除するのではなく、消去したい場合があります。

于 2012-11-29T16:08:12.320 に答える