14.05.2008, 15:18 | #1 |
Участник
|
Проблема с GDI графикой
Как сделать так что б GDI графика не пропадала, когда форма теряет фокус?
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 15:25 | #2 |
Участник
|
А на чем графика у вас? На Window control?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
14.05.2008, 15:25 | #3 |
Участник
|
Дась.
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 15:27 | #4 |
Участник
|
попробуйте рисовать в paint() после супера (если он там есть).
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
14.05.2008, 15:37 | #5 |
Участник
|
Если рисовать в пэинте метод будет вызывать сам себя.
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 15:44 | #6 |
MCTS
|
Посмотрите \Forms\tutorial_Tetris
должно быть познавательно
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
14.05.2008, 15:53 | #7 |
Участник
|
Смотрел) между прочим, когда эта форма теряет фокус, то изображение следующего блока на NextPane тоже пропадает. Изображение на главном Pane не пропадает только потому, что зацикленно перерисовуется.
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 16:20 | #8 |
Участник
|
я так и не поборол этот эффект, в итоге все рисовал с помощью ставщего убогим в 4.0 (спасибо MBS) класса Image. В 2.5 и 3.0 с Image можно было делать хорошие штуки.
А какая у тебя задача если не секрет, может что-нибудь подскажу. Какие фигуры рисуешь? |
|
14.05.2008, 16:25 | #9 |
Участник
|
Это смотря как и что рисовать.
См. рисунок - ничего не стирается.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
14.05.2008, 16:33 | #10 |
Участник
|
а ты сделай Tab и две закладки, на одной размести Window, нарисуй, перейди на вторую закладку и потом обратно на первую где только что отрисовал. останется?
|
|
14.05.2008, 16:48 | #11 |
Участник
|
Ну смотрите, в любом случае когда вы рисуете на контексе Window contol просходит срабатывает обработчик paint и в нём же вы снова рисуете, ну то есть замкнутый круг. Если не прав, поправте пожалуйста.
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 16:48 | #12 |
Участник
|
Цитата:
Paint() - реализует обработку виндового сообщения WM_PAINT (предпологаю). Вызывается когда надо перерисовать окно или часть его. Цитата:
The WM_PAINT message is sent when the system or another application makes a request to paint a portion of an application's window. The message is sent when the UpdateWindow or RedrawWindow function is called,
Как вариант отрисовки графики (и кстати правильный вариант) использовать промежуточный буфер. А в Paint копировать из него на HDC конечного окна. Как такое в Аксапте делать - не знаю. Используется это, чтобы избежать мерцания при перерисовки и задержек которые могут возникнуть при рисовании.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
14.05.2008, 16:52 | #13 |
Участник
|
Цитата:
Ну представьте вы рисуете график из 1000 точек с помошью MoveTo и LineTo. Вы же не думаете, что при этом винда 1000 раз обновит окно?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
14.05.2008, 16:54 | #14 |
Участник
|
Ну вот, о чём и я собсна, а когда много графики перерисовка заметна, то есть постоянное мерцание. Да, кстати, ещё один неприятный эфект. Когда насыщеное графикой окно теряет фокус, пропадает не только графика но и очень часто контролы.
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 16:55 | #15 |
Участник
|
Уверен, что LineTo вызывает событие Paint только один раз, потому как скорее всего запонлняется буфер, а потом копируеццо на конечный контекст.
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 17:00 | #16 |
Участник
|
Не вызывает. Вообще.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
14.05.2008, 17:14 | #17 |
Участник
|
Хм, проверил, действительно не вызывает. Интересно, почему же у меня постоянное мерцание...
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 17:25 | #18 |
Участник
|
Давайте код. Определим)
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
14.05.2008, 17:27 | #19 |
Участник
|
Лучшей форму xpo"шником али же отдельные методы?
__________________
Axapta has seduced me deadly! |
|
14.05.2008, 17:31 | #20 |
Участник
|
форму
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|