SetCellBackgroundColour и Refresh Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

SetCellBackgroundColour и Refresh

Post by borr_1 » Sat Feb 14, 2009 9:43 am

Хочу динамически поменять цвет одной из ячеек грида делаю

Code: Select all

grid->SetCellBackgroundColour(i, t, clFind);
grid->Refresh();//без этого изменений не будет видно
Есть ли более легковесный код не хочется каждый раз делать refresh всему гриду из-за одной ячейки можно как-то обновить только текущую ячейку?

Смотрел по форуму там люди советуют SetCellRenderer но там wxGridCellRenderer что-то у меня с ним не выходит изящно и просто. Примеры которые я находил говорили что свой потомок класса wxGridCellRenderer надо создавать - помоему это через чур.

Ranger
Knows some wx things
Knows some wx things
Posts: 30
Joined: Sun Jun 29, 2008 1:19 pm

Post by Ranger » Sun Feb 15, 2009 1:22 pm

смотри методы CellToRect и RefreshRect.

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Mon Feb 16, 2009 6:17 am

Ага спасибо. Искал что-то подомное но видимо не там.
Единственное если вызывать в лоб от grid'а ничего не выходит надо через GetGridWindow() типа:

Code: Select all

grid->GetGridWindow()->RefreshRect(grid->CellToRect(i, t));

Louigi Verona
Earned some good credits
Earned some good credits
Posts: 127
Joined: Tue Mar 24, 2009 10:21 am
Contact:

Post by Louigi Verona » Mon Jun 08, 2009 1:36 pm

А мне это решение не помогает. Я сделал клеточный автомат (типа игры) на wxGrid. Так вот, в самом начале у меня идёт случайное распределение цвета по клеточкам и там далее в зависимости от некоторых правил клеточки "разряжаются" - то есть становятся менее синими, переходят в чёрный цвет. Так вот, если не обновлять таблицу или обновлять вышеуказанным методом, то при клике на таблицу почему-то весь ряд становится темнее (а это, соответственно, влияет на поведение клеточной модели). Проблему удалось решить только myGrid->ForceRefresh().

А в чём вообще может быть проблему подобного "потемнения"?

Post Reply