Re[2]: Редактирование CTreeCtrl в диалоге
От: Виталий Россия  
Дата: 27.04.02 07:51
Оценка:
Здравствуйте Кирпа В.А., Вы писали:

КВ>Здравствуйте Аноним, Вы писали:



А>>Требуется редактировать элементы дерева в модальном диалоге, но при нажатии на Enter диалог закрывается


А>>Пробовал лечить при помощи PreTranslateMessage, но получилось что-то не то:

А>>редактируемый текст после нажатия изменяется на первоначальный. Как это можно исправить?

КВ>В OnOk()

OnOK

КВ>сделай так



КВ>
КВ>void MyClass::OnOk()
КВ>{
КВ>    if (m_Tree.GetEditControl() != NULL)
КВ>    {
КВ>        m_Tree.SetFocus();
КВ>        return;
КВ>    }   
КВ>    CDialog::OnOk();
КВ>}
КВ>


С таким вариантом пользователь не сможет отменить редактирование, лучше обрабатывать и OnCancle или так:

BOOL CWallerDlg::PreTranslateMessage(MSG* pMsg) 
{
    // TODO: Add your specialized code here and/or call the base class
    if (pMsg->message == WM_KEYDOWN && 
         (pMsg->wParam==VK_RETURN || pMsg->wParam==VK_ESCAPE))
    {
        m_tree.SetFocus();
        return true;
    }    
    return CDialog::PreTranslateMessage(pMsg);
}

КВ>


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