【问题标题】:How do I reserve caret position in CEdit control?如何在 CEdit 控件中保留插入符号位置?
【发布时间】:2010-09-10 16:43:50
【问题描述】:

我正在 MFC 中编写一个应用程序(不要问),我有一个包含数字的 CEdit 框。编辑该数字时,我想对更改采取行动,然后将插入符号替换为我对更改采取行动之前的位置-如果用户就在“。”之前在“35.40”中,如果他们将其更改为“345.40”,我希望它仍然放在点之前。我目前正在接收 CHANGE 消息,但可以将其切换为其他内容(更新?)。我怎样才能做到这一点?

【问题讨论】:

    标签: c++ mfc user-interface


    【解决方案1】:

    在更改之前使用 GetSel() 函数来存储光标的位置,然后使用 SelSel() 将其设置回来。您可以使用这些函数来获取/设置插入符号的位置,而不仅仅是获取/设置用户所做的选择。

    【讨论】:

      【解决方案2】:

      您能解释一下为什么要更改 CEdit 框的行为吗? 作为用户,我每次输入某个字符时都会更改插入符号。或者,如果您以编程方式更改该值,您是否希望阻止这种情况发生?

      【讨论】:

      • 作为用户,我希望插入符号保持在同一个地方。例如,如果您使用 .SetWindowTextA() 更改 CEdit 的值,插入符号将移动到框的前面。这是一种防止这种情况发生的方法。
      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2023-03-15
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多