Вот моя проблема:Невозможно изменить GC в Xlib после вызова XClearArea
Я использую XClearArea
, чтобы очистить область экрана с окном фона пиксельной. Это имеет цвет переднего плана как BLACK для графического контекста.
После вызова XClearArea
Я пытаюсь провести линию, используя API XDrawLine
. Здесь я использую GC, у которого есть передний RED.
Однако я замечаю, что звонок XDrawLine
рисует черную линию. Другими словами, XClearArea
не позволяет мне перевернуть Foreground к RED, несмотря на явное указание нового GC при моем вызове XDrawLine
.
Не мог бы кто-нибудь рассказать, почему это происходит и как эта проблема может быть устранена.
Любая помощь была бы принята с благодарностью. Благодарю.
EDIT: Позвольте мне добавить КОД, чтобы показать свою проблему. Я пытаюсь реализовать линию на области рисования, которую можно перемещать с помощью клавиш со стрелками на клавиатуре. Вот что я пытаюсь сделать:
- Нарисуйте линию.
- Нажмите на линию, чтобы сделать ее КРАСНОЙ.
- Используйте клавишу со стрелкой, чтобы переместить линию влево или вправо.
- Когда используется клавиша со стрелкой, линия по-прежнему остается красной.
Когда клавиша стрелка используется, я стараюсь, чтобы очистить предыдущую строку, используя 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, который может установить передний план для RED.
Однако система все еще, кажется, чертит линию с передним планом как черный.
К сожалению, мне нужно работать с Xlib, используя OpenMotif Window Manager. Я не могу использовать GTK/QT.
Спасибо, что за помощь.
Показать еще код. Считаете ли вы использование набора инструментов, такого как Gtk или Qt? –