Здравствуйте Кирпа В.А., Вы писали:
КВ>Здравствуйте Аноним, Вы писали:
А>>Требуется редактировать элементы дерева в модальном диалоге, но при нажатии на 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);
}
КВ>
Приятного времени суток