Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2012, 15:45   #1
WarHamster
Пользователь
 
Регистрация: 09.08.2010
Сообщений: 48
По умолчанию Мерцание при перерисовке окна

Я хочу заменить одно из дочерних окон Outlook своим. Делаю это так: отлавливаю дескрипторы, мое окно ставлю поверх стандартного, размеры стандартного убираю в ноль и блокирую ему WM_SIZE
Код:
IntPtr outlookWindow = FindOutlookWindow(); // заменяемое окно
Form1 myForm;  // Мое окно
IntPtr myWindow = myForm.Handle; 
Rectangle outlookRect = GetWindowRectange(outlookWindow);
SetPosition();
Rectangle myRect = GetWindowRectange(myWindow);
SetWindowPos(outlookWindow, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOREDRAW); // Так скрываю старое окно
hwndManager outlookManager = new hwndManager();
outlookManager.AssignHandle(outlookWindow);

private void SetPosition() // Устанавливаю мое окно поверх старого
{
    apiImport.SetWindowPos(myWindow, HWND_TOP, 0, 0, outlookRect.Width, outlookRect.Height, SWP_NOMOVE);
    myForm.Left = greedRect.Left;
    myForm.Top = greedRect.Top;
}

public class hwndManager : NativeWindow
{
 protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {               
                case WM_SIZE:
                    SizeChanged();
                    break;
                default:  
                    base.WndProc(ref m);
                    break;
            }
        }
}

SizeChanged()
{
outlookRect = GetWindowRectange(outlookWindow);
SetPosition();
}
Схема работает, но при ресайзе моя форма довольно сильно мерцает. Поскажите, как это исправить? Я вроде все события из лога MS SPY++ проверил, ниче не получилось. В Api я новичок
WarHamster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мерцание при перерисовке!!!! Heming Помощь студентам 6 09.01.2011 13:15
Мерцание изображений при перерисовке формы.(Delphi) _PROGRAMM_ Помощь студентам 3 19.09.2010 20:38
Мерцание модального окна при щелчке на родительское Vadik(R) Общие вопросы Delphi 11 14.10.2009 19:37
Нужна помощь при перерисовке в Image dimon4il Помощь студентам 7 03.05.2009 16:29
Мерцание окна при изменении размера zaqer Win Api 2 30.07.2008 23:39