Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
Мне пришлось создать нестандартный компонент, который в т.ч. нужно самому отрисовывать. Так вот, все бы хорошо, но этот OnPaint нужно в неторых случаях выполнять по движению мыши над компонентом, и происходит неприятное моргание, чем слабее машина, тем сильнее заметно, Подскажите, плз, как лечить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 08:25 |
|
||
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
oablohinМне пришлось создать нестандартный компонент, который в т.ч. нужно самому отрисовывать. Так вот, все бы хорошо, но этот OnPaint нужно в неторых случаях выполнять по движению мыши над компонентом, и происходит неприятное моргание, чем слабее машина, тем сильнее заметно, Подскажите, плз, как лечить. 1. double buffer 2. не рисовать лишнего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 11:49 |
|
||
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
Еще не знаю как это делается в .NET, но надо рисовать в памяти, потом выводить уже на экран. Думаю такая проблема уже поднималась, поищите по форуму или через поисковики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 11:52 |
|
||
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
НЕ СКАЖУЕще не знаю как это делается в .NET, но надо рисовать в памяти, потом выводить уже на экран. Думаю такая проблема уже поднималась, поищите по форуму или через поисковики. Ну это надо делать в любом случае, если рисовать больше 2-3 элементов, незавимо от уже предложенных пунктов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:57 |
|
||
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
Уважаемые, я рисовал сначала в памяти(по старой памяти о Borland C++3.11) на Bitmap'e, а затем выводил на экран. НЕ помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 14:12 |
|
||
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 16:17 |
|
||
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
Моргание вылечить просто: 1. Нужно указать на необходимость использования двойного буферирования в конструкторе: public MyControl(){ this.SetStyle(ControlStyles.DoubleBuffer, true); } 2. Создать процедуру прорисовки, например: private void DoPaint(Graphics g) { // здесь прорисовываем свой контрол // потом бордер } 3. Создать процедуру для ручной перерисовки с использованием технологии DoubleBuffer: private void ForceRepaint() { Graphics graphics = this.CreateGraphics(); Bitmap bitmap = new Bitmap(this.Width, this.Height, graphics); Graphics cache = Graphics.FromImage(bitmap); PaintEventArgs e = new PaintEventArgs(cache, this.DisplayRectangle); OnPaintBackground(e); OnPaint(e); graphics.DrawImageUnscaled(bitmap, 0, 0); e.Dispose(); cache.Dispose(); bitmap.Dispose(); graphics.Dispose(); } 4. Унаследовать стандартную процедуру перерисовки: protected override void OnPaint(PaintEventArgs e) { base.OnPaint (e); DoPaint(e.Graphics); } Думаю, это должно помочь. Если останутся вопросы - стучись в асю. -- WBR, Roman S. Golubin ICQ UIN: 63253392 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2004, 12:06 |
|
||
|
Помогите с OnPaint
|
|||
|---|---|---|---|
|
#18+
oablohinУважаемые, я рисовал сначала в памяти(по старой памяти о Borland C++3.11) на Bitmap'e, а затем выводил на экран. НЕ помогает. Не помогает потому, что пока ты рисуешь в памяти, контрол обновляет бэкграунд. Вариантов несколько. Но если зарисовываешь всю клиентскую область, достаточно запретить прорисовку бэкграунда: public MyControl(){ this.SetStyle(ControlStyles.Opaque); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2004, 12:43 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=1005&tid=1438349]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 342ms |

| 0 / 0 |
