Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Перерисовка окна


Автор: Andrey44 12.11.2009, 11:32
Есть окно, на нем статик для предпросмотра картинок.
Я в списке выбираю пункт для просмотра и это может быть HTML страница.
Так вот, когда выбираю HTML страницу создаю окно для ее предпросмотра и делаю этот статик родителем этого окна. Все работает, все хорошо.
Но вот когда я хочу посмотреть картинку, я прячу HTML окно и рисую на статике. Но картинка появляется на пол-секунды и пропадает.
Приходится еще раз вызывать функцию для рисования картинки. И после этого картинки рисуются нормально, но до следующего просмотра HTML.
Потом опять приходится два раза выбирать один и тот-же рисунок. Что можно сделать?

Автор: GremlinProg 12.11.2009, 19:54
а не пробовал родителем HTML-вивера ставить основное окно?
статик, все таки - не контейнер для таких вещей, у него свои задачи

Автор: Andrey44 13.11.2009, 07:58
GremlinProg, основное окно сделать родителем нельзя, вот скрин http://ipicture.ru/

Автор: Andrey44 13.11.2009, 08:13
Решилось все просто банальным UpdateWindow(staticWnd);
Код

if(_dht.IsWindowVisible()){
        _dht.SetWindowPos(&_dht.wndTop, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOOWNERZORDER | SWP_NOMOVE | SWP_NOSIZE);//прячем хтмл вивер
    }
    HWND staticWnd = App.GetUiManager()->GetControlWindow(_T("DataPreview"));
    UpdateWindow(staticWnd);//без этой строчки ничего не работало
Утро вечера мудренее!!! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)