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

时间:2019-05-28 13:12:30

标签: c++ winapi

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

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

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

SendDlgItemMessage(ID_STATUS, EM_SETREADONLY, 0, 0);

在预览UI之前,先查看这是否会禁用文本编辑,但不会。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

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

SendDlgItemMessage(ID_STATUS, EM_SETREADONLY, TRUE, 0);
  

wParam

     

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

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