Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перерисовка в OnSize, как предовратить? 
:(
    Опции темы
maq
  Дата 28.5.2006, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Ребята, у меня такой вопрос:

нужно чтобы при OnSize в CView не происходила перерисовка клиентской части окна или же его части. В MSDN-не покопался, но не помогло.

Кто знает, как это сделать? 
PM MAIL   Вверх
vvpC
Дата 28.5.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.5.2006
Где: Москва

Репутация: нет
Всего: нет



блокировать(игнорировать) WM_PAINT, када оно не нужно 
PM MAIL WWW   Вверх
DeadSoul
Дата 28.5.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Ключевое слово - Erasebackground 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
maq
Дата 28.5.2006, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



1. В чем разница между OnPaint и OnDraw? Так понимаю, что OnPaint вызывается при сообщении WM_PAINT, а для чего тогда OnDraw?

2. 
Цитата
блокировать(игнорировать) WM_PAINT, када оно не нужно

В смысле использовать PreTranslateMessage?

3. 
Цитата
Ключевое слово - Erasebackground

А можно с примерчиком? 
PM MAIL   Вверх
Earnest
Дата 29.5.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



OnPaint - это обработчик стандартного сообщения Windows WM_PAINT. OnDraw - в некоторых MFC-классах есть виртуальная ф-я OnDraw, которая вызывается из OnPaint.

Цитата(vvpC @  28.5.2006,  21:20 Найти цитируемый пост)
блокировать(игнорировать) WM_PAINT, када оно не нужно  

Глупости. Кто это будет определять, когда нужно и когда не нужно.

1) Чтобы на OnSize не было лишних подергиваний, нужно убрать CS_HREDRAW ии CS_VREDRAW из стиля класса окна. Т.е. зарегистрировать свой класса, а не пользоваться стандартным. CS_VREDRAW и CS_HREDRAW нужны только тогда, когда при изменении размеров окна изменяется масштаб изображения, а когда просто окрываются невидимые части - лучше убрать.

2) Иногда имеет смысл регистрировать класс без кисти (чтобы не было зарисовки на ERASEBKGND) или, что почти то же самое, перехватывать WM_ERASEBKGND и ничего не делать. Но это возможно не всегда.

3) Поищи по форуму, вопрос неоднократно обсуждался. 


--------------------
...
PM   Вверх
vvpC
Дата 30.5.2006, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.5.2006
Где: Москва

Репутация: нет
Всего: нет



Цитата(Earnest @  29.5.2006,  12:42 Найти цитируемый пост)
Глупости.
 Неужели? Я бы не был столь котегоричен. Блокировка перерисовки вовремя ресайзинга имеет смысл только при изменении размеров окна мышью, поэтому начало ресайзинга и его завершение определяются элементарно. Вот рабочий пример:
Код

BOOL SizingFlag=FALSE;//глобальная - для простоты

void CMyDlg::OnPaint() 
{
    if(SizingFlag)
    {
        return;
    }
    CDialog::OnPaint();
    
    CDC* dc=GetDC();
    CRect r;
    GetClientRect(&r);
    dc->MoveTo(0,0);
    dc->LineTo(r.BottomRight());
}
LRESULT CMyDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
    case WM_SIZING:
        SizingFlag=TRUE;
        break;
    case WM_NCHITTEST:
        if(SizingFlag==TRUE)
        {
            SizingFlag=FALSE;
            Invalidate(TRUE);
        }
        break;
    }
    return CDialog::WindowProc(message, wParam, lParam);
}

 
PM MAIL WWW   Вверх
Earnest
Дата 30.5.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Ну ладно, хорошо, не глупости, а некорректное (в данном случае) решение.  smile 

Флаги, конечно, можно поставить. 
Но ведь того же эффекта (т.е. отказ от вывода содержимого окна в процессе растяжения) можно достичь просто отключив соответствующую опцию в Виндовс. И будет растягиваться только рамка. А уже по завершению процесса отрисуется окно.
Причем так будут вести себя все приложения в системе.

А уж если опция включена (показывать содержимое окна во время ресайза), то задача программы - обеспечить ее нормальную работу - т.е. без дерганий. Которые возникают в результате стирания той части окна, которая в перерисовке вовсе не нуждается.

Чтобы с этим бороться, нужно иметь класс окна без CS_[V\H]REDRAW. В этом случае при ресайзе перерисоваются только новые части.
 


--------------------
...
PM   Вверх
Earnest
Дата 30.5.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



vvpC, вдогонку:
Кстати, в твоем коде есть еще одна ошибка. Если ты уж ставишь свой обработчик WM_PAINT, то обязан поставить скобки BeginPaint()\EndPaint() (ну или создать объект CPaintDC). А ты, если стоит флаг, просто выходишь.
Чем это может грозить? Ну, скажем, во время резайза таймер не будет срабатывать. В нормальном приложении возможны и другие проблемы, в этом маленьком примере не проявляющиеся.  
Конечно, можно поставить CDialog::OnPaint перед проверкой (все равно он практическио ничего не делает, кроме BeginPaint-EndPaint). Но в любом случае как-то неуклюже, согласись, дважды запрашивать контекст перерисовки...
  

Это сообщение отредактировал(а) Earnest - 30.5.2006, 11:53


--------------------
...
PM   Вверх
vvpC
Дата 30.5.2006, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.5.2006
Где: Москва

Репутация: нет
Всего: нет



Цитата(Earnest @  30.5.2006,  11:50 Найти цитируемый пост)
Если ты уж ставишь свой обработчик WM_PAINT, то обязан поставить скобки BeginPaint()\EndPaint() (ну или создать объект CPaintDC). А ты, если стоит флаг, просто выходишь.
Чем это может грозить? Ну, скажем, во время резайза таймер не будет срабатывать.
 Объясни тогда почему я "обязан" - ведь я не захватываю какие-то ресурсы и забываю их освободить...  EndPaint сразу за BeginPaint (или GetDC,ReleaseDC)и больше ничего - имхо бессмыслица...  И как обработка WM_TIMER связана с обработкой WM_PAINT? 
PM MAIL WWW   Вверх
Earnest
Дата 30.5.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(vvpC @  30.5.2006,  13:25 Найти цитируемый пост)
Объясни тогда почему я "обязан" - ведь я не захватываю какие-то ресурсы и забываю их освободить...  EndPaint сразу за BeginPaint (или GetDC,ReleaseDC)и больше ничего - имхо бессмыслица...  

Неправильное у тебя ИМХО... smile 
Система посылает окну WM_PAINT тогда и только тогда, когда есть инвалидный регион. И WM_PAINT будет посылаться до посинения, пока кто-нибудь не снимет признак инвалидности с региона. Если ты не ставишь свой обработчик, то это делает стандартный. А уж если ставишь, то обязан это сделать сам, т.е. вызвать BeginPaint-EndPaint (т.е. все чуть-чуть сложнее, но в MFC достаточно создать автоматический объект CPaintDC).
Цитата(vvpC @  30.5.2006,  13:25 Найти цитируемый пост)
И как обработка WM_TIMER связана с обработкой WM_PAINT?  

А у таймера приоритет ниже. Пока есть сообщения WM_PAINT, сообщения от таймера не придут. Проверяется элементарно. Кстати, была не так давно на форуме (кажется WinAPI) тема, где парень так попал... 


--------------------
...
PM   Вверх
vvpC
Дата 30.5.2006, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.5.2006
Где: Москва

Репутация: нет
Всего: нет



Цитата(Earnest @  30.5.2006,  14:06 Найти цитируемый пост)
WM_PAINT будет посылаться до посинения

Ну тааада лаадно. smile 
А если серьезно, то когда я данный вопрос спаем++ обследовал, у меня иногда какраз такое и случалось. Временами нормально, а временами спай как пулемет: WM_PAINT, WM_PAINT. Ну я по простоте душевной не придал этому большого значения  smile  
PM MAIL WWW   Вверх
maq
  Дата 31.5.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



перефразирую вопрос:

в данный момент я работаю над созданием класса контрола, который позже станет ActiveX контролом (скажем, контрол А). Естественно, контрол А должен уметь менять размеры при изменении размера окна (скажем, окно B), в котором он будет находиться.
Моя цель предотвратить перерисовку неизменяемой клиентской части контрола А при изменении его размера. А при изменении размера окна В происходит перерисовка (моргание) окна В, а следовательно и контрола А. Предполагается, что при Resizing-е окна В происходит Resizing контрола А.

Моя задача - найти способ, при котором независимо от типа окна В при его Resizing-е не происходила перерисовка неизменяемой клиентской части контрола А.

Заранее спасибо 
PM MAIL   Вверх
Earnest
Дата 1.6.2006, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Про окно A уже все написано.

Цитата(maq @  31.5.2006,  23:58 Найти цитируемый пост)
Моя задача - найти способ, при котором независимо от типа окна В при его Resizing-е не происходила перерисовка неизменяемой клиентской части контрола А.


Попробуй поставить окну В стиль CLIPCHILDREN.
 


--------------------
...
PM   Вверх
maq
Дата 13.6.2006, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Окну В стиль CLIPCHILDREN поставил, окно А уже не моргает (если не нем больше ничего нет).

У окна А убрал CS_VREDRAW и CS_HREDRAW и зарегистрировал. Неизменяемая клиентская часть окна А при ресайзинге окна А не перерисовывается. Но вот если происходит ресайзинг окна В, то независимо от того происходит ресайзинг окна А или нет, окно А перерисовывается! Почему? 
PM MAIL   Вверх
maq
Дата 15.6.2006, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



При ресайзинге окна В оно посылает сообщения окну А WM_PAINT и WM_ERASEBKGND. Как из окна А перехватить эти сообщения исходящие именно из окна В? 
PM MAIL   Вверх
vvpC
Дата 15.6.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.5.2006
Где: Москва

Репутация: нет
Всего: нет



объяви собственные сообщения и шли их окну А, а в параметры можно запокавать хендл окна B , чтоб не ошибится... 
PM MAIL WWW   Вверх
maq
Дата 16.6.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Цитата
объяви собственные сообщения и шли их окну А, а в параметры можно запокавать хендл окна B , чтоб не ошибится... 

а можно по-подробнее? Я не очень-то понял. 
PM MAIL   Вверх
vvpC
Дата 16.6.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.5.2006
Где: Москва

Репутация: нет
Всего: нет



Код

#define WM_MYMESSAGE WM_USER+100

void B::OnSize(UINT nType, int cx, int cy)
{
      AWindowPointer->SendMessage(WM_MYMESSAGE,(WPARAM)GetSafeHwnd(),0);
//или PostMessage
}



LRESULT A::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    if(message==WM_MYMESSAGE)
        {
                  if(BWindowPointer->GetSafeHwnd()==(HWND)wParam)
                 {
                    бла бла
                 }
         }

    return CDialog::WindowProc(message, wParam, lParam);
}

  

Это сообщение отредактировал(а) vvpC - 16.6.2006, 14:58
PM MAIL WWW   Вверх
Coocky
Дата 16.6.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(maq @  28.5.2006,  10:53 Найти цитируемый пост)
нужно чтобы при OnSize в CView не происходила перерисовка клиентской части окна или же его части. В MSDN-не покопался, но не помогло.

Господи , уже два месяца наблюдаю ваш сериал.. smile Не выдержал... smile 
Неужели так ТРУДНО ЗАПРЕТИТЬ перерисовк?????
LockWindowUpdate()
RedrawWindow()
Invalidate()
SetRedarw()
Ну, может хватит велосипеды изобретать? 


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
maq
Дата 16.6.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Цитата
Господи , уже два месяца наблюдаю ваш сериал..  Не выдержал...  
Неужели так ТРУДНО ЗАПРЕТИТЬ перерисовк?????
LockWindowUpdate()
RedrawWindow()
Invalidate()
SetRedarw()

Спасибо за совет, 
Coocky, но все это я уже перепробовал! 
PM MAIL   Вверх
Coocky
Дата 16.6.2006, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(maq @  16.6.2006,  17:06 Найти цитируемый пост)
Coocky, но все это я уже перепробовал!

И что -перерисовывается?  smile  Страно... Значит врет МСДН.
А можно узнать-как ты пробывал? smile 
 


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
v2v
Дата 2.4.2007, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Цитата(Earnest @ 29.5.2006,  12:42)
1) Чтобы на OnSize не было лишних подергиваний, нужно убрать CS_HREDRAW ии CS_VREDRAW из стиля класса окна. Т.е. зарегистрировать свой класса, а не пользоваться стандартным. CS_VREDRAW и CS_HREDRAW нужны только тогда, когда при изменении размеров окна изменяется масштаб изображения, а когда просто окрываются невидимые части - лучше убрать.

простите за мою не образованность но как и где это делается . (в вин апи я знаю как такое сделать, а в мфс)? smile 


--------------------
PM   Вверх
Earnest
Дата 3.4.2007, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(v2v @  2.4.2007,  21:13 Найти цитируемый пост)
 (в вин апи я знаю как такое сделать, а в мфс)? 

Практически так же. Никто не запрещает делать через WINAPI, только функцию оконную подставить нужно MFC-шную. Но в MFC есть удобные функции-обертки AfxRegisterClass и AfxRegisterWndClass. В частности, они проверяют, что класс не регистрируется повторно и обеспечивают удаление (де-регистрацию) класса на выходе. Эти функции удобно использовать в PreCreateWindow.
Кроме того, по моему можно убрать CS_REDRAW из стиля класа прямо у окна, не регистрируя специальный класс... через SetClassLong.


--------------------
...
PM   Вверх
v2v
Дата 4.4.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Перезарегистрировал класс. В коей мере удаление этих стилей помогло,НО!
У меня на моей форм-вью есть актив-х контрол, который занимает оснвную область окна:
Если размер окна меньше чем 800х600, размер актив-х контрола не менянется, но когда размер окна увеличивается больше указаного, я начинаю растягивать и контрол...вот тогда снова начинается мигание... можно от него(мигания) как то ещё избавиться....
Ps. ещё пробывал OnEraseBackground(...) { return 1; } не помогает...(не влияет на мигание (перерисовку) внутренностей актив-х контрола).




--------------------
PM   Вверх
Earnest
Дата 4.4.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



C актив-X контролом нужно бороться аналогично (с его окном). Раз мигает он, из  парента больше не выжмешь...


--------------------
...
PM   Вверх
v2v
Дата 4.4.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



В том то и дело что всё сделал в классе актив х контрола, тоже что и в мди-окне. Не помогло...


--------------------
PM   Вверх
Earnest
Дата 4.4.2007, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Да вряд ли в самом актив-Х контроле это сделал - скорее в окне, в которое он помещается...
Ты посмотри Спаем, что там за окна, и какие у них стили...
Но не факт, что сможешь изменить поведение актив X - все-таки это черный ящик...
Можно попробовать перенаправить его вывод в совместимый контекст... но это уже так, фантазии на тему - тут нужно предметно рыться в коде и пробовать.


--------------------
...
PM   Вверх
v2v
Дата 4.4.2007, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Цитата(Earnest @ 4.4.2007,  18:16)
Можно попробовать перенаправить его вывод в совместимый контекст... но это уже так, фантазии на тему 

Для меня это черный лес... а времени разбиратся не особо есть....
....
Попробую плясать по другому:
Если, допустим, окно перерисовывать на ресайзе, только тогда, когда событие выполнилось, а именно отпустили левую кнопку мыши (уже перетянули форму) .... Немного не красиво, но лучше мигания....
Хм.. как мне перехватить это нажатие OnLButtonUp (..) {..} ведь нажатие происходит не непосредственно в моём классе форм-вью, где я обрабатываю OnSize() {...} ... 


--------------------
PM   Вверх
Earnest
Дата 4.4.2007, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Для этого есть PreTranslateMessage на одном из родителей...
Но сомневаюсь, что поможет: ты разве сам Invalidate вызываешь на ресайзе?


--------------------
...
PM   Вверх
v2v
Дата 4.4.2007, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Нет, но пробывал сам Invalidate вызывать ... для Active-X контрола не помогает.


--------------------
PM   Вверх
Earnest
Дата 5.4.2007, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Вот: он сам это делает, и ты вряд ли сможешь этому помешать...
Можно попробовать на ресайзе родительского окна исключать из невалидного региона актив-Х контрол - до отпускания правой кнопки мыши. Где-то в вин-апи была тема про борьбу с миганием на ресайзе. Там как раз все эти манипуляции с регионами обсуждались. Может быть она есть в ссылках внизу. 

В зависимости от задачи, можно просто отключить в настройках Виндоус непрерывную перерисовку при ресайзе (таскать только рамку).
По крайней мере, пока вин-апи не перестанет быть для тебе "темным лесом".


--------------------
...
PM   Вверх
v2v
Дата 5.4.2007, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



цитатаЯ уже столько тем перечитал про ресайз окон и в вин апи и в мфс  smile ..... 
В моей ситуации, лучше всего помогает именно убирание вот тех двух стилей как в вин апи, так и в мфс...... но не достаточно.



--------------------
PM   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1011 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.