Проблема с CTabCtrl в XP
От: serg_ya  
Дата: 16.03.04 06:58
Оценка:
Скачал из интернета класс CXPTabCtrl. У всех контролов background отображается в XP как надо. НО не могу обрабатывать изменение закладок. В диалоге на котором расположен Tab сообщения
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB,OnSelchangeTab) не обрабатываются(функция не получает управления).
В самом CXPTabCtrl есть 2 функции, может в них дело:
    ON_NOTIFY_REFLECT(TCN_SELCHANGING,OnTabSelChanging)
    ON_NOTIFY_REFLECT(TCN_SELCHANGE,  OnTabSelChanged)

// these two messages are necessary only to properly redraw deselected tab background, because 
void CXPTabCtrl::OnTabSelChanging(NMHDR* pNMHDR, LRESULT* pResult)    // selected rect was inflated by 2 points
{
    UNUSED_ALWAYS(pNMHDR);
    m_ixSelOld=GetCurSel();
    *pResult=0L;
}
//----------------------------------------------------------------------------------------------------------
void CXPTabCtrl::OnTabSelChanged(NMHDR* pNMHDR, LRESULT* pResult)
{
    UNUSED_ALWAYS(pNMHDR);
    if(m_ixSelOld>=0 && m_ixSelOld!=GetCurSel()  && IsExtendedTabTheamedXP())            // else  
    {    CWnd* pWndParent=GetParent();
        if(pWndParent)
        {    CRect rcOldSel; GetItemRect(m_ixSelOld, rcOldSel); rcOldSel.InflateRect(2,2);
            ClientToScreen(&rcOldSel); pWndParent->ScreenToClient(&rcOldSel);
            pWndParent->InvalidateRect(rcOldSel);
    }    }
    *pResult=1L;
}

Помогите please
Метки созданы для того, чтобы посылать программу в одно определенное место.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.