Winapi 对于Win32 API编辑控件,ES_编号、ES_大写和ES_小写样式已停止工作

Winapi 对于Win32 API编辑控件,ES_编号、ES_大写和ES_小写样式已停止工作,winapi,vb6,editcontrol,createwindowex,Winapi,Vb6,Editcontrol,Createwindowex,我们有一个非常古老的(“遗留”)VB6代码,用于从头创建Windows编辑控件。看起来是这样的: Dim dwStyle As Long dwStyle = WS_CHILD Or ES_AUTOVSCROLL Or ES_AUTOHSCROLL Or ES_NUMBER Or ES_MULTILINE m_hwndEdit = CreateWindowExW(0, StrPtr("Edit"), 0, dwStyle, plX, plY, plWidth, plHeight, m_hWnd,

我们有一个非常古老的(“遗留”)VB6代码,用于从头创建Windows编辑控件。看起来是这样的:

Dim dwStyle As Long
dwStyle = WS_CHILD Or ES_AUTOVSCROLL Or ES_AUTOHSCROLL Or ES_NUMBER Or ES_MULTILINE

m_hwndEdit = CreateWindowExW(0, StrPtr("Edit"), 0, dwStyle, plX, plY, plWidth, plHeight, m_hWnd, 0&, App.hInstance, ByVal 0&)

它已经运行了多年,但现在客户报告说ES_数字样式没有效果。同样的问题涉及两个相似的标志,大写字母和小写字母。有什么问题吗?

没有任何变化。这些风格在今天的效果和以往一样好。一些可能的解释:

  • 其他一些程序正在修改编辑控件的窗口样式
  • 其他一些程序正在使应用程序自动化,并以编程方式设置控件的文本。例如,屏幕键盘
  • 用户正在将值粘贴到编辑控件中,而不是键入它们

  • 我建议您联系您的用户,让他们准确描述他们是如何将这些值放入控件的。

    事实上,这个答案无论如何都没有帮助。没有其他程序修改我们的控制,没有外部自动化。当然,我们知道我们可以粘贴“非法”字符,但事实并非如此——我说的是正常的键入。我们可以在不同的电脑上重现这个问题。windows中没有任何变化。这些窗口样式的工作方式与往常一样。如果你可以复制它,你可以创建一个sscce。我想这可能是我没有注意到的最新版本操作系统中的一个微妙变化(可能与其他风格的组合有关)。我将进行实验,看看为什么这些标志可能不起作用。我一有结果就会写我的研究。我觉得说我的答案没用有点强。这些标志现在的行为与往常一样。你应该做一个SSCCE。这是第一版——后来我把它改为“没有帮助”。您的答案“未更改”很好,但它并没有给我任何实际的想法,我应该在代码中检查哪些内容。对不起,我们之间有误会。我刚刚在我的代码中发现了一个错误-ES_编号样式在另一个地方被覆盖。。。