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


Автор: Winte 20.6.2009, 20:25
Добрый вечер!
Мне нужно добавить всплывающий текст при наведении на узел дерева. Но что-то не оч получается :(
Вот код:
Код

BOOL TabDialog1::OnInitDialog()
{
        //bla-bla-bla
            m_pTips =new CToolTipCtrl;//создаю менюшку
            m_pTips->Create(this);
            for (size_t i = 0; i < numContacts; i++)//делаю выборку данных и пихаю в дерево
            {
                Contact* cont = c->GetContact(i);
                HTREEITEM m_con = contactsTree.InsertItem((LPWSTR)cont->Name().c_str());
                
                vector<wstring> numberCounts = cont->Phones();
                vector<wstring>::iterator ii;
                for ( ii  = numberCounts.begin(); ii != numberCounts.end(); ++ii)
                {
                    HTREEITEM newItem = contactsTree.InsertItem((LPWSTR) ii->c_str(),m_con);
                    m_pTips->AddTool(&contactsTree.GetChildItem(newItem), _T("qwerty"));//для каждого элемента ставлю подсказку
                }
            }
          //bla-bla-bla

ну и далее ставлю обработчик передачи сообщения классу подсказки:
Код
 

BOOL CTestTipDlg::PreTranslateMessage(MSG* pMsg) 
{
    if (NULL != m_pTips)
            m_pTips->RelayEvent(pMsg);    
    return CDialog::PreTranslateMessage(pMsg);
}



Вопрос в том - верный ли метод используется для получения текущего узла. И если да, то как преобразовать HTREEITEM к CWnd* ?

Автор: Earnest 22.6.2009, 09:46
И как это , интересно, ты собираешься HTREEITEM к CWnd* преобразовать, если оно не CWnd*?
А еще, нет смысла добавлять тулы по всем узлам, ведь их позиция на экране все время меняется.
Сделай один тул на все дерево и колбэк для плучения текста. В TTN_NEEDTEXT по позиции мыши ищи узел и возвращай текст. Подробности разыскивать лень, а наизусть не помню, но на этом форуме были темы про тултипы, так что ищи сам. 

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