这是我的问题:
我使用XClearArea
Window 背景像素图清除屏幕区域。这具有图形上下文的前景色为黑色。
在调用之后,XClearArea
我尝试使用XDrawLine
API 画一条线。在这里,我使用了一个前景为 RED 的 GC。
但是,我注意到调用XDrawLine
绘制了一条黑线。换句话说,XClearArea
不允许我将 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 窗口管理器来使用 Xlib。我不能使用 GTK/QT。
在此先感谢您的帮助。