如何在运行时将编辑样式更改为es_number
How to change the edit style to ES_NUMBER at run time?
创建编辑控件时,我不添加ES_NUMBER
。稍后,基于布尔标志,我想更改样式并将其制成ES_NUMBER
并将其恢复为布尔标志的另一个值。
文档具有答案。一些摘录:
使用CreateWindow或CreateWindowex函数创建编辑控件,指定编辑类,适当的窗口样式常数以及以下编辑控制样式的组合。创建控件后,这些样式无法修改,除非如前所述。
因此,创建控件后我们可能会或可能无法更改样式。让我们看看:
es_number
仅允许将数字输入到编辑控件中。请注意,即使使用此集合,仍然可以将非数字粘贴到编辑控件中。
创建控件后要更改此样式,请使用setWindowlong。
要将输入到编辑控件中的文本转换为整数值,请使用getDlgitemint函数。要将编辑控件的文本设置为指定整数的字符串表示形式,请使用setDlgitemint函数。
添加样式执行此操作:
LONG style = GetWindowLong(hwnd, GWL_STYLE);
SetWindowLong(hwnd, GWL_STYLE, style | ES_NUMBER);
或删除它:
LONG style = GetWindowLong(hwnd, GWL_STYLE);
SetWindowLong(hwnd, GWL_STYLE, style & ~ES_NUMBER);
相关文章:
- 具有变量Number of Arguments的std::函数的矢量
- OpenGL ES 2.0将纹理绘制到屏幕上是行不通的
- SDL + OpenGL ES 2.0 使用着色器显示纹理
- 什么"!<number> 在 C/C++ 中表示
- 找到$number,然后将其替换为$number+1
- 为什么OpenGL ES 3.1+上GL_DEPTH_COMPONENT的glCheckFramebufferStatu
- 计算着色器Open GL ES的多个输入
- Open GL ES 3.1 的计算着色器的最小工作示例
- Rcpp 'candidate function has different number of parameters (expected 0 but has 1)'
- OpenGL ES 绘制形状
- 如果 i<=number-1,那么 i 的最大值应该是 number-1,那么 number%1==0 或 i==number 语句如何为真?
- 如何使用着色器在 opengl es 中渲染四边形内部的部分纹理
- 错误:不支持 GLSL 3.30.支持的版本包括:1.10、1.20、1.30、1.00 ES、3.00 ES、3.10
- 使用 Boost ASIO 和 SSL 时出现"Wrong Version Number"错误 (C++)
- OpenGL ES:在顶点着色器中计算顶点位置时性能不佳
- C++ GLSL 着色器:"error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES,
- OpenGL (ES) 图像处理C++
- QMutex with QThread - prime number sekeer
- 由于错误'wrong version number'无法完成握手
- E/libEGL:调用没有当前上下文的 OpenGL ES API (每个线程记录一次) - Android/SDL