MFC中CTreeCtrl编辑处理enter和esc

此代码可以相应CtreeCtrl编辑框的事件,enter时确定输入,esc时取消输入

void CTest1Dlg::OnTvnEndlabeleditTree1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTVDISPINFO pTVDispInfo = reinterpret_cast<LPNMTVDISPINFO>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 if (pTVDispInfo->item.mask == 1) m_tree1.SetItemText(pTVDispInfo->item.hItem, pTVDispInfo->item.pszText); *pResult = 0; } BOOL CTest1Dlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (pMsg->message == WM_KEYDOWN) { if (pMsg->wParam == VK_RETURN) { HWND wnd = ::GetParent(pMsg->hwnd); if (wnd = m_tree1.m_hWnd) { m_tree1.EndEditLabelNow(false); return true; } } else if (pMsg->wParam == VK_ESCAPE) { HWND wnd = ::GetParent(pMsg->hwnd); if (wnd = m_tree1.m_hWnd) { m_tree1.EndEditLabelNow(true); return true; } } } return CDialog::PreTranslateMessage(pMsg); }

你可能感兴趣的:(tree,mfc)