【问题标题】:Validating List Control In-Place Edit验证列表控件就地编辑
【发布时间】:2018-05-07 07:03:25
【问题描述】:

在我的列表控件中,我有适当的编辑控件。

在编辑控件的 killfocus 事件中,我正在验证文本。

我的要求是在单击 listcontrol 的滚动条时,我应该使用旧文本进行验证(它的行为应该像 esc 键)

在我的应用程序中,当单击 listcontrol 的滚动条时,会触发编辑控件的 killfocus 事件,并且正在使用当前文本验证文本。

如何验证旧文本?

谢谢。

【问题讨论】:

  • @IInspectable 何时对列表控件中的就地编辑控件进行验证?
  • 您的问题有一个答案可以准确解释何时进行输入验证。
  • 在那个链接中,他们提到应该在单击确定按钮时完成对话框验证,但就我而言,我无法从该链接中得到任何想法。
  • 该链接还解释了在WM_KILLFOCUS 处理期间完成输入验证会导致什么问题。这些问题也适用于您的情况。我还评论说,您已经收到了一个答案,显示了一个可行的输入验证通知。

标签: mfc


【解决方案1】:

当您收到LVN_BEGINLABELEDIT 时,您也会收到LVN_ENDLABELEDIT 通知。根据您的需要返回 TRUE 或 FALSE。

【讨论】:

  • 要检查焦点是否在列表控件的滚动条上,我尝试了下面的代码,但 pScroll 始终为 NULL。 CListCtrl* pList = ((CListCtrl*)GetParent()); CWnd* pScroll = PList->GetScrollBarCtrl(SB_VERT);如何获取列表控件的滚动条窗口句柄?
  • 滚动条嵌入在列表控件中,与列表控件本身没有不同的焦点。
  • 如何获取列表控件除标题和滚动条外的矩形?
  • GetClientRect!?你问的是基础。这不是讨论任何发展的论坛。请阅读 SO 的指导方针,并了解 Windows 编程的基础知识。
猜你喜欢
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 2013-03-05
相关资源
最近更新 更多