复制粘贴CTreeView标签
Copy paste in CTreeView labels
我在MFC SDI应用程序中有一个来自CTreeView
的控件(基本上包含分离器,CTreeView
和CDetailsView
)。对我来说,工作是通过处理编辑
ON_NOTIFY_REFLECT(TVN_ENDLABELEDIT, &CNavigationView::OnTvnEndlabeledit)
我想添加复制/粘贴功能与Ctrl+C
和Ctrl+V
。我认为这涉及TVN_BEGINLABELEDIT
和TVN_KEYDOWN
,但我不知道如何使这个工作正确,可能是一些想法或样品?
void CNavigationView::OnTvnEndlabeledit(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTVDISPINFO pTVDispInfo = reinterpret_cast<LPNMTVDISPINFO>(pNMHDR);
if (pTVDispInfo && pTVDispInfo->item.pszText)
{
}
}
当我试图从记事本粘贴文本时,pTVDispInfo->item.pszText
是NULL
根据调试器。
我在Visual Studio 2013, Windows 8中工作
我假设您已经在应用程序中定义了一个也使用Ctrl-V的加速器。因此,在原地编辑控件中,您按Ctrl+V,但这会导致从加速器生成WM_COMMAND消息。加速程序执行一些终止当前编辑作业的操作。
在这种情况下,你需要一个PreTranslateMessage处理程序来检查键盘输入是否通过Ctrl+C/Ctrl+V到达,并将此输入引导到打开的编辑控件,而不是让框架窗口加速器来处理它。
只要设置一个断点,查看callstack,并检查在原地编辑停止时执行的内容。
相关文章:
- C 和 C++ 中开关语句的案例标签的常量值,但显示不同的行为
- 如何正确指定 goto 语句的标签?
- 使用g++静态初始化带有命名标签的嵌套C++结构
- 通过水平滚动条更改标签
- MFC:我们如何轻松地从CTreeCtrl切换到CTreeView?
- 从 QFontDatabase 设置 QFont 将所有标签设置为等宽字体?Qt C++
- 在C++中存储要输入的标签列表
- 如何在等效列表中查找最小的连接标签
- 标签检测鼠标单击 c++
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 如何根据C++中的标签运行特定函数?
- C++ Expat 仅打印元素的第一个字母和标签中的数据
- 默认标签显然在 switch 语句中不起作用
- 在 gcc/clang (C++) 中获取函数范围之外的标签地址
- 在"printf"中使用标签"h"或"hh"是否涉及未定义的
- GTK 3 C++按钮中带有标签的图标
- 如何使QLineSeries/QXYSeries仅显示一个点标签
- SFINAE和标签调度之间的差异
- 如何在主窗口标签的对话框中显示QLineEdit的输入
- 复制粘贴CTreeView标签