Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Сдается мне, 09.05.12 21:41 Число просмотров: 2857
Автор: Neznaika <Alex> Статус: Member
|
что обработка сообщений - должна быть внутри функции DialogThreadFunction (а не снаружи).
|
<programming>
|
[Win32] виснет DialogBoxParam в ActiveX в IE9 29.04.12 02:16
Автор: void <Grebnev Valery> Статус: Elderman Отредактировано 11.05.12 06:10 Количество правок: 2
|
Есть STA ActiveX. В одном из COM методов создаётся UI thread:
HRESULT SomeCOMmethod()
{
::CreateThread(NULL, 0, DialogThreadFunction, NULL, 0, NULL);
// do staff
...
WaitForDialogWithMessagePumping();
}
В UI потоке в функции DialogThreadFunction создаётся диалог DialogBoxParam. Для IE7/IE8 - работает нормально. Для IE9 - виснет при вызоке DialogBoxParam.
Как это исправить?
Спасибо.
|
|
Спасибо всем. Пофиксил. Была неправильно написана фунция... 11.05.12 06:25
Автор: void <Grebnev Valery> Статус: Elderman
|
Спасибо всем. Пофиксил. Была неправильно написана фунция WaitForDialogWithMessagePumping.
Я там сделал улучшение и по глупости убрал подкачку сообщений Windows.
Когда восстановил подкачку сообщений - всё заработало. Но странное дело - в IE7/IE8 работало и так. Но ведь не должно было работать!
IE9 - сразу дал понять, что номер не пройдёт.
|
|
Сдается мне, 09.05.12 21:41
Автор: Neznaika <Alex> Статус: Member
|
что обработка сообщений - должна быть внутри функции DialogThreadFunction (а не снаружи).
|
| |
Я писал в нитку по памяти и ошибся На самом деле диалог... 11.05.12 06:08
Автор: void <Grebnev Valery> Статус: Elderman
|
> что обработка сообщений - должна быть внутри функции > DialogThreadFunction (а не снаружи).
Я писал в нитку по памяти и ошибся На самом деле диалог создаётся при помощи DialogBoxParam (а не CreateDialogParam). Так что обработку сообщений имплементпровать не надо.
|
|
а что у тебя на диалоге есть? просто MessageBox() пробовал? 08.05.12 23:33
Автор: + <Mikhail> Статус: Elderman
|
|
| |
Была неправильно имплементирована функция... 11.05.12 06:15
Автор: void <Grebnev Valery> Статус: Elderman
|
Была неправильно имплементирована функция WaitForDialogWithMessagePumping. Я её пофиксил и всё заработало. Всё равно спасибо. Имено благодаря тому, что попробовал MessageBox(), я натолкнулся но баг в Wait функции.
Спасибо.
|
|
|