これが私の問題です:
を使用しXClearArea
て、ウィンドウの背景のピックスマップで画面の領域をクリアします。これは、グラフィック コンテキストの前景色が BLACK になっています。
への呼び出しに続いて、 APIXClearArea
を使用して線を描画しようとします。XDrawLine
ここでは、フォアグラウンド RED を持つ GC を使用します。
XDrawLine
ただし、 への呼び出しが黒い線を引いていることに気付きました。言い換えると、XClearArea
への呼び出しで新しい GC を明示的に指定しているにもかかわらず、 Foreground を RED にすることはできませんXDrawLine
。
なぜこれが起こるのか、そしてこの問題をどのように修正できるのかについて、誰かが光を当てることができますか.
どんな助けでも大歓迎です。ありがとう。
編集:私の問題を示すためにいくつかのコードを追加させてください。キーボードの矢印キーを使用して移動できる描画領域に線を実装しようとしています。これが私がやろうとしていることです:
- 線を引きます。
- ラインをクリックして赤くします。
- 矢印キーを使用して、線を左右に移動します。
- 矢印キーを使用すると、線は赤のままです。
矢印キーを使用すると、XClearArea
APIを使用して前の行をクリアしようとしますが、
XClearArea(XtDisplay(Widget,XtWindow(Widget),0, 0,WINDOW_WIDTH, WINDOW_HEIGHT, True);
背景の PIXMAP は前景が黒です。
これが完了したら、XDrawLine
関数を使用して線を描画しようとします:
XDrawLine(XtDisplay(Widget, XtWindow(Widget),RED_GC,x1, y1,x2,y2);
ここでは、フォアグラウンドを RED に設定できる新しい RED_GC を使用しようとしています。
ただし、システムはまだ前景を黒として線を引いているようです。
残念ながら、OpenMotif Window Manager を使用して Xlib を操作する必要があります。GTK/QT が使えません。
よろしくお願いします。