Может кто-нибудь из знающих объяснить, почему если в контроле браузера отображать страницу через IWebBrowser2::Navigate2, то контрол не перехватывает на себя фокус, а если страницу отображать через связку IHTMLDocument2::write — close, то close после отображения страницы перехватывает на себя фокус?
Причем перехват фокуса производится только после того, как хотя бы один раз кликнуть мышой в окно, содержащее контрол браузера.
Иными словами, как сделать чтобы close фокус не изменял?
Запоминать просто прежний фокус и возвращать его после close не катит, т.к. в моем приложении это вызывает очень неприятные мелькания окошек.
Здравствуйте, FireGuard, Вы писали:
FG>Может кто-нибудь из знающих объяснить, почему если в контроле браузера отображать страницу через IWebBrowser2::Navigate2, то контрол не перехватывает на себя фокус, а если страницу отображать через связку IHTMLDocument2::write — close, то close после отображения страницы перехватывает на себя фокус?
FG>Причем перехват фокуса производится только после того, как хотя бы один раз кликнуть мышой в окно, содержащее контрол браузера.
FG>Иными словами, как сделать чтобы close фокус не изменял?
FG>Запоминать просто прежний фокус и возвращать его после close не катит, т.к. в моем приложении это вызывает очень неприятные мелькания окошек.
Столкнулся с такой же проблемой. У меня по пробегу по строкам грида меняется содержимое IHTMLDocument2. Стоит хоть раз кликнуть в окно это и все... приехали. Начинает фокус на себя перетягивать после каждой загрузке html...
Подскажите, пожалуйста... Наверняка есть здесь решение простое.
Здравствуйте, Mechanic55, Вы писали:
M>Столкнулся с такой же проблемой. У меня по пробегу по строкам грида меняется содержимое IHTMLDocument2. Стоит хоть раз кликнуть в окно это и все... приехали. Начинает фокус на себя перетягивать после каждой загрузке html...
M>Подскажите, пожалуйста... Наверняка есть здесь решение простое.
Я решил эту проблему просто — блокирую окно на время вызова close:
//Нужна предварительная блокировка окна,
//иначе close перехватывает фокус на контрол браузера.
EnableWindow(FALSE);
hr = spDoc->close();
EnableWindow(TRUE);
Здравствуйте, FireGuard, Вы писали:
FG>Здравствуйте, Mechanic55, Вы писали:
M>>Столкнулся с такой же проблемой. У меня по пробегу по строкам грида меняется содержимое IHTMLDocument2. Стоит хоть раз кликнуть в окно это и все... приехали. Начинает фокус на себя перетягивать после каждой загрузке html...
M>>Подскажите, пожалуйста... Наверняка есть здесь решение простое.
FG>Я решил эту проблему просто — блокирую окно на время вызова close:
FG>//Нужна предварительная блокировка окна,
FG>//иначе close перехватывает фокус на контрол браузера.
FG>EnableWindow(FALSE);
FG>hr = spDoc->close();
FG>EnableWindow(TRUE);
Спасибо большое! Действительно простое решение...