Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.171.68] |
|
Сообщ.
#1
,
|
|
|
Приложение с окнами в стиле Outlook
Центральной окно CWnd, хочу в нем переключать два вида Одно на базе CListCtrl->CWnd Второе на CScrollView->CView Добавил их оба, одно скрыто. Переключаю так: switch (m_CurView) { case 0: m_ptrScroll->ModifyStyle(WS_VISIBLE, SWP_NOACTIVATE); //m_ptrScroll->EnableWindow(FALSE); m_wndMainList.ModifyStyle(0, WS_VISIBLE, SWP_NOSIZE); //m_wndMainList.SetActiveWindow(); //ShowWindow(ID_VIEW_MAIN_LIST); //m_wndMainList.EnableWindow(TRUE); m_wndMainList.Invalidate(); m_wndMainList.RedrawWindow(); m_wndMainList.ShowScrollBar(SB_BOTH, TRUE); break; case 1: m_wndMainList.ModifyStyle(WS_VISIBLE, 0, SWP_NOACTIVATE); //m_wndMainList.EnableWindow(FALSE); m_ptrScroll->ModifyStyle(0, WS_VISIBLE, SWP_NOSIZE); //ShowWindow(ID_VIEW_MAIN_GRAPH); //m_ptrScroll->EnableWindow(TRUE); m_ptrScroll->Invalidate(); m_ptrScroll->RedrawWindow(); m_ptrScroll->ShowScrollBar(SB_BOTH, TRUE); //m_ptrScroll->UpdateWindow(); //m_ptrScroll->RedrawWindow(); //m_ptrScroll->SetActiveWindow(); break; } // switch Invalidate(); UpdateWindow(); RedrawWindow(); Проблема в том, что пока что-то с окном не сделаешь, полосы прокрутки не обновляются и на них остается изображение от предыдущего отображение. Само содержимое обновляется корректно. Как видно, переберал все что можно. Не обновляется вся область, а только область для информации без полос прокртутки. |
Сообщ.
#2
,
|
|
|
Цитата Black_Dragon @ Как видно, переберал все что можно. SetWindowPos пробовал? |
Сообщ.
#3
,
|
|
|
B.V.
Делал так RECT rc; GetClientRect(&rc); m_wndMainList.MoveWindow(0, 0, rc.right, rc.bottom); |