gpt4 book ai didi

c++ - (WIN32 API) 编辑控件样式不适用于 CreateWindowEx 中的 RichEdit

转载 作者:可可西里 更新时间:2023-11-01 11:18:46 25 4
gpt4 key购买 nike

我使用了下面的代码,它运行良好,允许用户只输入数字。我想通过使用 RichEdit 来增加功能,所以我添加了它。

我不再使用:

wchar_t sampletext[] = L"foobar";  
HWND inputText = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", sampletext,
ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE,
10, 10, 500, 75, hWnd, NULL, *hInst, NULL);

到:

LoadLibrary(L"riched32.dll");  

wchar_t sampletext[] = L"foobar";
HWND inputText = CreateWindowEx(WS_EX_CLIENTEDGE, L"RichEdit", sampletext,
ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE,
10, 10, 500, 75, hWnd, NULL, *hInst, NULL);

更改它允许我使用 CTRL+Z 和 CTRL+A 等等,但现在由于某种原因我可以输入非数字字符。

如何解决此问题,使 Rich Edit 仅接受此文本字段中的数字?或者
或者,我如何创建自己的自定义过滤器,只接受文本字段中的数字?

编辑:
这是我打字的图片
enter image description here

最佳答案

“RichEdit”控件类有自己的 set of styles .

但根据 MSDN,ES_NUMBER 是其中之一。但是,请注意 ElmueSoft 的评论。

要在没有控件帮助的情况下仅将输入过滤为数字,您可以将其子类化。不过,您需要处理相当多的消息。 WM_CHAR 是最明显的,但是 WM_PASTEWM_SETTEXT 可以传入非数字文本。

关于子类化的好资料:

关于c++ - (WIN32 API) 编辑控件样式不适用于 CreateWindowEx 中的 RichEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22750927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com