Обновление пользовательского интерфейса
От: Valentin Россия  
Дата: 03.09.01 04:56
Оценка:
Как принудительно обновить пользовательский интерфейс панели инструментов? Пробовал вызовом AfxGetApp()->OnIdle(0), но ничего не происходит, хотя она вроде (смотря на исходники MFC)рассылает сообщение на обновление интерфейса. Обновление интерфейса происходит только когда, например, сдвинешь мышку.
Re: Обновление пользовательского интерфейса
От: BigBob  
Дата: 03.09.01 07:44
Оценка:
Здравствуйте Valentin, вы писали:

V>Как принудительно обновить пользовательский интерфейс панели инструментов? Пробовал вызовом

Для этого нужно класс-визардом создать обработчик UPDATE_COMMAND_UI. Когда потребуется обновить вид панели инструментов, каркас приложения сам вызовет этот обработчик. Вроде бы так ;)
Re[2]: Обновление пользовательского интерфейса
От: Valentin Россия  
Дата: 03.09.01 08:44
Оценка:
Здравствуйте BigBob, вы писали:

BB>Здравствуйте Valentin, вы писали:


V>>Как принудительно обновить пользовательский интерфейс панели инструментов? Пробовал вызовом

BB>Для этого нужно класс-визардом создать обработчик UPDATE_COMMAND_UI. Когда потребуется обновить вид панели инструментов, каркас приложения сам вызовет этот обработчик. Вроде бы так ;)

Дело в том, что как я писал в своем вопросе, мне нужно принудительно обновить тулбар. Обработчик на UPDATE_COMMAND_UI у меня есть. Просто у меня на фоне работает поток, в котором нужно в конце его тела обновить тулбар, а каркас приложения автоматически его обновляет например на движение мыши. Так как мне быть? Что вызвать? Не двигать же мне мышкой, чтобы его обновить ;))
Re[3]: Обновление пользовательского интерфейса
От: Sasparella США  
Дата: 03.09.01 10:33
Оценка:
Здравствуйте Valentin, вы писали:

Вызовите RecalcLayout();

Саша.
Re[4]: Обновление пользовательского интерфейса
От: Valentin Россия  
Дата: 03.09.01 10:41
Оценка:
Здравствуйте Sasparella, вы писали:

S>Вызовите RecalcLayout();


Я пробовал вызывать ((CFrameWnd*)AfxGetMainWnd())->RecalcLayout();
но интерфейс не обновляется (сообщение UPDATE_COMMAND_UI не приходит). А если двинуть мышкой, то приходит.
Re[5]: Обновление пользовательского интерфейса
От: BigBob  
Дата: 03.09.01 11:46
Оценка:
V>но интерфейс не обновляется (сообщение UPDATE_COMMAND_UI не приходит). А если двинуть мышкой, то приходит.
Имхо из потока можно посылать свое сообщение (нампример WM_USER + 10), а в обработчике этого сообщения вызвать Invalidate() для нужной панели иснтрументов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.