首页 > 解决方案 > 我有一个 CEdit 框。当我禁用该框并立即尝试调用 SetReadOnly 后,它保持禁用状态。为什么是这样?

问题描述

我想这样做并没有什么特别的原因,更多的是因为我了解这些东西是如何工作的。

我有一个从 CWnd 派生的编辑框。我们称它为 m_edtBox。当我打电话m_edtBox.EnableWindow(FALSE)

紧随其后的是

m_edtBox.SetReadOnly(TRUE),

该框保持禁用状态。它不具有只读属性。我只是好奇这是为什么?

标签: c++mfc

解决方案


禁用的窗口是一个窗口

不接收来自用户的键盘或鼠标输入 [...]。

换句话说,WS_DISABLED窗口样式控件,控件是否完全可以处理用户输入。

将其与ES_READONLY编辑控件样式进行对比。它控制对控件有影响的用户输入。

防止用户在编辑控件中键入或编辑文本。

两种样式都可以独立设置,虽然都与用户输入有关,但它们的用途不同。


推荐阅读