在C++的“编辑”文本框中禁用文本编辑,同时保持启用滚动

Disabling Text Editing in an EDITTEXT box in C++ while keeping scrolling enabled

本文关键字:文本编辑 滚动 启用 C++ 编辑 文本      更新时间:2023-10-16

所以我的困境来自于使用Windows API在C++中制作UI。我需要有一个 EDITTEXT 框,它允许滚动但不允许用户编辑框中显示的文本。到目前为止,它看起来像这样。

EDITTEXT        ID_STATUS,7,237,439,50, WS_VSCROLL | ES_MULTILINE 

这允许在文本较长时滚动文本并将其分成新行。但是,如果我添加禁用选项,它会禁用滚动条和文本。解决这种情况的最佳方法是什么?我也尝试添加

SendDlgItemMessage(ID_STATUS, EM_SETREADONLY, 0, 0);

在预览 UI 之前,看看这是否会禁用文本编辑,但事实并非如此。任何帮助将不胜感激。

EM_SETREADONLY是正确的,但您实际上未能要求它是只读的。尝试

SendDlgItemMessage(ID_STATUS, EM_SETREADONLY, TRUE, 0);

wParam

指定是设置还是删除ES_READONLY样式。值 TRUE 设置ES_READONLY样式;如果值为 FALSE,则会删除ES_READONLY样式。

还可以在创建控件时指定ES_READONLY样式。