c++ - 我有一个 CEdit 框。当我禁用该框并立即尝试调用 SetReadOnly 后,它保持禁用状态。为什么是这样?
问题描述
我想这样做并没有什么特别的原因,更多的是因为我了解这些东西是如何工作的。
我有一个从 CWnd 派生的编辑框。我们称它为 m_edtBox。当我打电话m_edtBox.EnableWindow(FALSE)
紧随其后的是
m_edtBox.SetReadOnly(TRUE)
,
该框保持禁用状态。它不具有只读属性。我只是好奇这是为什么?
解决方案
禁用的窗口是一个窗口
不接收来自用户的键盘或鼠标输入 [...]。
换句话说,WS_DISABLED窗口样式控件,控件是否完全可以处理用户输入。
将其与ES_READONLY编辑控件样式进行对比。它控制对控件有影响的用户输入。
防止用户在编辑控件中键入或编辑文本。
两种样式都可以独立设置,虽然都与用户输入有关,但它们的用途不同。
推荐阅读
- javascript - 如何在一张幻灯片中制作包含多个图像的幻灯片
- javascript - 获取天气和时间数据 - openweathermap - 更新数据
- mongodb - `mongo:latest` 更改后,如何修复 docker 容器中的 mongodb?
- java - 预期 END_ELEMENT,得到类型 1 的事件(通过引用链:...->java.util.ArrayList[0])
- c# - Dotnet 调试器,运行到我的代码的下一行?
- reactjs - 如何使 Chakra UI 框/flex 项目占用 100% 宽度
- c# - 使用 UpdateAsync() 时 ASP.Net 身份库出错
- mongodb - 获取文件列表中的列表总和
- php - Laravel 5.8:未定义属性:Illuminate\Database\Eloquent\Relations\BelongsToMany::$usr_id
- magento - 当用户从shopify商店购买某些产品时,它必须重定向到magento商店