【发布时间】:2019-10-21 12:39:15
【问题描述】:
我的 MFC 应用程序中的 del 密钥有问题。
我已经定义了一个加速器条目以在我的CTreeView. 中使用del 键
我的应用程序使用拆分视图。 CTreeView 位于左侧面板中,CEdit 控件位于右侧面板中 CFormView 内。
Entry 是这样定义的:
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
ID_EDIT_DELETE 事件在 CTreeView 内部处理。
在我添加它之后,del 键在 CEdit 控件中停止工作。
我必须做什么才能恢复 CEdit Control 中的功能? 我是否必须添加类似的内容:
ON_COMMAND(ID_EDIT_DELETE, &StationView::OnDelete)
到每个包含CEdit Control 的面板?然后手动实现删除字符功能?
或者有没有更简单的方法将del Key 事件传递给CEdit 控件?
更新:
我重写了 CFormView 类中的 PreTranslateMessage 方法,并且 Del Key Press 被捕获。但是我该如何继续呢?
更新 V2:
如此处询问的拆分器创建代码:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext) {
// create splitter window
if (!m_wndSplitter.CreateStatic(this, 1, 2)) {
return FALSE;
}
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(250, 1000), pContext) ||
!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CLineSyncView), CSize(500, 1000), pContext)) {
m_wndSplitter.DestroyWindow();
return FALSE;
}
return TRUE;
}
【问题讨论】:
-
您的 CEdit 控件在哪里?它属于树吗?
-
我使用拆分面板,因此树视图位于左侧面板,编辑控件位于右侧面板。我已经更新了问题。
-
我覆盖了 CFormView 类中的 PreTranslateMessage 方法,并且 Del Key Press 被捕获。但是我该如何进一步进行?
-
你能添加一些代码来创建分割视图吗?
-
将代码添加到问题中。
标签: c++ windows mfc treeview editbox