gpt4 book ai didi

winapi - TVN_KEYDOWN 的正确返回值

转载 作者:行者123 更新时间:2023-12-04 18:42:33 25 4
gpt4 key购买 nike

我最近回答了关于Creating TreeView with nodes and checkboxes的问题。 .

当我在思考如何正确处理案件时treeview的节点在用户按下空格键时被检查我遇到了 TVN_KEYDOWN 通知。

我的解决方案在对话框和窗口过程中进行了测试,两者似乎都完美无缺。

尽管如此,我仍然对返回的结果应该是什么感到进退两难。以下是 TVN_KEYDOWN 文档的相关摘录:

Return value

If the wVKey member of lParam is a character key code, the character will be used as part of an incremental search. Return nonzero to exclude the character from the incremental search, or zero to include the character in the search. For all other keys, the return value is ignored.



我在测试是否按下空格键时尝试返回两个结果,但没有发现任何差异。

所以我问你以下问题:
  • 有人能解释一下什么是增量搜索吗?
  • 从增量搜索中包含或排除测试字符(空格键)有什么区别?

  • 编辑:

    似乎我已经找到了第一个问题的答案。我在 Wikipedia 上找到了一篇文章这解释了什么是增量搜索。

    它只剩下第二个问题需要回答。

    编辑结束

    谢谢你。

    此致。

    最佳答案

    它在巨大的 TreeView 中最为明显。最好的例子是 Regedit.exe 中的左侧面板。展开 HKCR 并开始输入以查看效果。

    该实现在 Windows 版本之间发生了变化,它曾经在 XP 中不太可用。这是一个UI blooper,用户没有任何好方法可以看到他打错了字母,纠正了打字错误或看到搜索从头开始。当前版本的 Windows 使用超时,当您几秒钟内没有按下任何键时,会自动重置部分键入的搜索短语。这是最实用的。它当然有用,只是不太好用。

    与 TVN_KEYDOWN 相关的唯一明智的事情就是什么都不做。永远不要添加更多的方法来使它比现在更难预测。如果它是用户真正想要使用的按键,那么故意吞下按键当然会使它的可用性大大降低。您当然不想吞下空格,这当然是树节点文本中的有效字符。如果树碰巧没有任何带有包含空格的文本的节点,那么您仍然不想吞下它,控件本身已经这样做了。

    如果通知还通过收集的增量搜索字符串或提供重置它的方法,则该通知会更有用。它只是不,所以那是桥下的水。如果您创建了某种可用性陷阱,请考虑处理它,很难想出一个实际示例。当你看到它时你就知道了。

    唯一真正的用途是完全替代搜索功能。然后,您将制定自己的规则并自己选择一个节点。当然总是返回一个非零值。

    关于winapi - TVN_KEYDOWN 的正确返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445851/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com