У меня есть небольшая проблема здесь.
У меня есть сторонний элемент управления ActiveX, который преобразует файлы из одного типа в другой.Я хочу конвертировать много файлов, поэтому мне нужно запустить его в пакетном режиме.Однако этот элемент управления часто дает сбой (я не говорю о хороших исключениях в C ++, он делает такие приятные вещи, как доступ к уже освобожденной памяти, нарушение доступа, вы называете его).
Поэтому моя проблема заключается в следующем:
1) Мне нужно обернуть этот элемент ActiveX в отдельный процесс, чтобы он не повредил память моего основного процесса.
2) Мне нужно вызывать этот процесс, возможно, сотни раз,и с небольшими файлами на быстром компьютере он вызывается 5-6 раз в секунду
3) Мне нужно сделать этот процесс полностью бесшумным, пользователь не должен знать, что процесс выполняется много раз
4) Однако, поскольку это элемент управления ActiveX, мне также необходимо создать скрытый диалог в процессе, в котором размещается элемент управления ActiveX
Но когда я создаю скрытый диалог, кажется, что он отвлекает внимание отактивное окно на мгновение, а затем возвращает его обратно.Поскольку этот процесс может вызываться 5-6 раз в секунду, он прерывает ввод с клавиатуры для пользователя, а также быстро мигает текущее активное окно, переключаясь из активного в неактивное состояние.
Я используюПроизводный от CDialog класс для размещения элемента управления ActiveX.Флаг Visible отключен в редакторе ресурсов, чтобы он не отображался.Я создаю диалог, вызывая CDialog :: Create, а не DoModal.
Как я могу запретить диалогу убирать фокус?