CDialog
От: kondrik  
Дата: 12.02.14 13:37
Оценка:
Мне необходимо отобразить диалог, в котором будет выведена информация "Подождите, идет обновление конфигурации...".
Я создаю немодальный диалог, который отображаю во время длительной процедуры обновления.
Но этот диалог корректно не обновляется и его нельзя ни передвинуть и в нем текст может частично затереться.
Что можно сдлелать?
.
Re: CDialog
От: AlexGin Беларусь  
Дата: 12.02.14 13:57
Оценка:
Здравствуйте, kondrik, Вы писали:

K>Мне необходимо отобразить диалог, в котором будет выведена информация "Подождите, идет обновление конфигурации...".

K>Я создаю немодальный диалог, который отображаю во время длительной процедуры обновления.
K>Но этот диалог корректно не обновляется и его нельзя ни передвинуть и в нем текст может частично затереться.
Что значит "диалог корректно не обновляется"
Какой текст? (выводимый в ресурсах или обновляемый динамический)...

K>Что можно сдлелать?


...подробнее и содержательнее изложить суть проблемы...
Re[2]: CDialog
От: kondrik  
Дата: 12.02.14 14:05
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, kondrik, Вы писали:


K>>Мне необходимо отобразить диалог, в котором будет выведена информация "Подождите, идет обновление конфигурации...".

K>>Я создаю немодальный диалог, который отображаю во время длительной процедуры обновления.
K>>Но этот диалог корректно не обновляется и его нельзя ни передвинуть и в нем текст может частично затереться.
AG>Что значит "диалог корректно не обновляется"
AG>Какой текст? (выводимый в ресурсах или обновляемый динамический)...

K>>Что можно сдлелать?


AG>...подробнее и содержательнее изложить суть проблемы...


Отображаю обычный статический текст и статическую иконку.
Если я отображаю немодальный диалог и при этом основное приложение, которое его вызывает не сильно загруженно, то этот диалог корректно отображается.
Если основное приложение сильно загружено, то мой немодальный диалог не могу ни передвинуть и если какое-т оокно его закроет, то оно не перерисуется, пока не закончит выполняться длительная процедура в моем основном приложении.
Как понимаю — немодальный диалог не получает сообщения обновления окна?
Видел, что нужно обрабатывать как-то сообщения PeekMessage, но не могу понять как. Также как второй вариант — думаю в отдельном потоке реализовать диалог, но очень не хотелось GUI на отдельный поток завязывать.

Смысл всего этого — отобразить во время выполнения длительной процедуры диалог, который бы не затирался другими окнами и, чтобы этот диалог можно было передвинуть.
.
Re: CDialog
От: Carc Россия http://www.amlpages.com/home.php
Дата: 12.02.14 15:26
Оценка:
Здравствуйте, kondrik, Вы писали:

K>Мне необходимо отобразить диалог, в котором будет выведена информация "Подождите, идет обновление конфигурации...".

K>Я создаю немодальный диалог, который отображаю во время длительной процедуры обновления.
K>Но этот диалог корректно не обновляется и его нельзя ни передвинуть и в нем текст может частично затереться.
K>Что можно сдлелать?
Или диалог показывать в отдельном потоке, или (что правильнее и лучшее) конфигурацию обновлять в отдельном рабочем потоке.
Aml Pages Home
Re: CDialog
От: Hawk Россия  
Дата: 12.02.14 16:42
Оценка:
Здравствуйте, kondrik, Вы писали:

K>Что можно сдлелать?


Сходить на codeproject, конечно же.
Re[2]: CDialog
От: kondrik  
Дата: 13.02.14 06:45
Оценка:
Здравствуйте, Hawk, Вы писали:

H>Здравствуйте, kondrik, Вы писали:


K>>Что можно сдлелать?


H>Сходить на codeproject, конечно же.


Спасибо. На этом примере очень хорошо видна правильная методика.
.
Re: CDialog
От: MasterZiv СССР  
Дата: 18.02.14 11:55
Оценка:
On 12.02.2014 17:37, kondrik wrote:

> Мне необходимо отобразить диалог, в котором будет выведена информация

> "Подождите, идет обновление конфигурации...".
> Я создаю немодальный диалог, который отображаю во время длительной
> процедуры обновления.
> Но этот диалог корректно не обновляется и его нельзя ни передвинуть и в
> нем текст может частично затереться.
> Что можно сдлелать?

Запустить цикл обработки сообщений.
При этом "длительная процедура обновления" должна работать либо в
фоновом потоке, либо должна быть дискретизирована и выполняться кусками
по таймеру или посылаемому самому себе сообщению.
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.