Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > мерцание TabCtrl при Resize


Автор: leniviy 2.5.2007, 15:28
Привет. Есть диалог, на нем TabCtrl. в OnSize вызываю SetWindowPos для таб контрола, а он от этого мерцает. Ктонить знает, как исправить? Причем, если в диалоге выключен "Clip children", мерцают любые контролы, а если включен, то только TabCtrl.
Код

void CDlg1::OnSize(UINT nType, int cx, int cy)
{
    CDialog::OnSize(nType, cx, cy);
    // TODO: Add your message handler code here
    if(m_MainTab.m_hWnd == NULL)
      return;      // Return if window is not created yet.
    CWnd *tmp;
    RECT lpRect, newRect;
    GetClientRect(&lpRect);
    lpRect.top += 11;
    lpRect.left += 11;
    lpRect.right -= 12;
    lpRect.bottom -= 12;
    newRect = lpRect;
    newRect.bottom -= 37;
    tmp = &m_MainTab;
    //tmp = GetDlgItem(IDOK);
    tmp->SetWindowPos(NULL, newRect.left, newRect.top , newRect.right - newRect.left, newRect.bottom - newRect.top, 
        SWP_NOZORDER );
}

Автор: Greeen 2.5.2007, 15:54
Попробуй MoveWindow

Автор: leniviy 2.5.2007, 16:26
попробовал. То же самое

Автор: Greeen 2.5.2007, 18:36
Можно отключить "Отображать содержимое окна при перетаскивании".

Автор: Earnest 2.5.2007, 20:35
Посмотри, что у TAB-контрола на EraseBkbnd делается. Попробуй отключить (т.е. просто возвращать TRUE).

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