- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的问题:
我使用 XClearArea
来清除带有窗口背景像素图的屏幕区域。图形上下文的前景色为黑色。
在调用 XClearArea
之后,我尝试使用 XDrawLine
API 绘制一条线。这里我使用前景为红色的 GC。
但是,我注意到对 XDrawLine
的调用绘制了一条黑线。换句话说,尽管在对 XDrawLine
的调用中明确指定了新的 GC,但 XClearArea
不允许我将前景变为 RED 。
谁能解释一下为什么会发生这种情况以及如何解决这个问题。
任何帮助将不胜感激。谢谢。
编辑:让我添加一些代码来显示我的问题。我正在尝试在绘图区域上实现一条可以使用键盘上的箭头键移动的线。这就是我正在尝试做的事情:
当使用箭头键时,我尝试使用 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_GC,它可以将前景设置为红色。
但是,系统似乎仍然与前景为黑色划了一条线。
不幸的是,我必须使用 OpenMotif 窗口管理器来使用 Xlib。我无法使用 GTK/QT。
预先感谢您的帮助。
最佳答案
不知道在没有完整代码的情况下要告诉你什么,但是......
XtDisplay 调用仅接受 1 个参数。
所以
XClearArea(XtDisplay(Widget,XtWindow(Widget),0, 0,WINDOW_WIDTH, WINDOW_HEIGHT, True);
应该是:
XClearArea(XtDisplay(Widget),XtWindow(Widget),0, 0,WINDOW_WIDTH, WINDOW_HEIGHT, True);
与 XDrawLine() 相同
另外,你最好还是打电话
XSetForeground (XtDisplay(Widget), YourGC, YourRedpixel);
设置前景。 (但也许你是...)
关于调用 XClearArea 后无法修改 Xlib 中的 GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907057/
这是我的问题: 我使用 XClearArea 来清除带有窗口背景像素图的屏幕区域。图形上下文的前景色为黑色。 在调用 XClearArea 之后,我尝试使用 XDrawLine API 绘制一条线。这
我是一名优秀的程序员,十分优秀!