C ++.Изюминка Borland Developer Studio, но не уверен, что это уместно здесь.
У меня есть элемент управления ActiveX (From Axis Communications), который отображает видео с камеры.Он отлично работает при нормальной работе, но я хочу немного поработать с ним, что вызывает проблему.
Если программно я перемещаю компонент по форме (только координаты x, y), все в порядке- прямоугольник видео перемещается плавно, без мерцания.
Однако, если я изменяю размер компонента (снова в коде), я получаю мерцание на нижнем и правом краях.Под мерцанием я имею в виду, что на тех краях возникает белая рамка, которая увеличивается и мерцает на реальном изображении.
Я пробовал DoubleBuffering, но это не исправляет.
Это проблема ActiveX?Или, возможно, проблема с компонентом Axis?
Есть ли способ изменить размер без мерцания?
РЕДАКТИРОВАТЬ:
Дальнейшее тестирование:
Может показаться, что это происходит только тогда, когда я изменяю размер элемента управления И одновременно перемещаю элемент управления, что, к сожалению, я и хочу сделать (я увеличиваю и уменьшаю масштаб).
Я собралпростой тест в Visual Basic с элементом управления ActiveX, и он работает нормально.
Точный (преобразованный) тот же код в Borland C ++ имеет мерцание.
Код теста C ++ (который просто изменяет размеркомпонент, поддерживающий статическую центральную точку):
for (int i = 0; i < 100; i++)
{
AxisMediaControl1->Width = AxisMediaControl1->Width - 2;
AxisMediaControl1->Height = AxisMediaControl1->Height - 2;
AxisMediaControl1->Top = AxisMediaControl1->Top + 1;
AxisMediaControl1->Left = AxisMediaControl1->Left + 1;
Sleep(50);
}