【问题标题】:Three questions about editbox?关于编辑框的三个问题?
【发布时间】:2011-02-19 12:03:12
【问题描述】:

我对 WINAPI 中的编辑框控件有三个问题(我在 msdn 上找不到关于此的信息) 1. 如何在编辑框中禁用鼠标、箭头、退格键移动打字光标?我想在 dos 的命令行中输入,但没有退格。

  1. 我可以用红色写一段文字,另一段用蓝色写吗?

  2. 如何从另一个线程写入编辑框控件?

【问题讨论】:

    标签: windows winapi controls editcontrol


    【解决方案1】:
    1. 将其设为只读 (ES_READONLY) 并手动拦截击键并仅附加您想要的。
    2. 不,您需要为此使用RICHEDIT 类并使用RTF。 (您可以绘制一个普通的 EDIT 窗口,但这不会很有趣)
    3. SendMessageWM_SETTEXT(或者 EM_SETTEXTEX / EM_REPLACESEL 如果你使用 RICHEDIT

    为什么不使用控制台?

    【讨论】:

    • 它必须在窗口中:/ 回答 1。 - 是否有任何其他选项代替 ES_READONLY 并拦截击键?我用我的语言问,因为键盘上有很多组合可以制作各种字符。
    • 您可以拦截 WM_CHAR 并检查其值,如果合适则丢弃。
    • 谢谢。我可以在 Richedit 中禁用鼠标选择吗?我在 char 后面加上这段代码: SendMessage(richEdit, EM_SETSEL, - 1, 0); SendMessage(richEdit,EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf); SendMessage(richEdit, EM_REPLACESEL, (WPARAM)0, (LPARAM)(LPSTR)msg);但是当我用鼠标点击richedit时,这个代码不起作用:/
    • 您可以丢弃鼠标消息,WM_LBUTTONDOWN 等。
    猜你喜欢
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多