簡體   English   中英

(WIN32 API)編輯控件樣式不適用於CreateWindowEx中的RichEdit

[英](WIN32 API) Edit Control Style not applying to RichEdit in CreateWindowEx

我使用了以下代碼,並且運行良好,只允許用戶輸入數字。 我想通過使用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在此文本字段中僅接受數字? 要么
另外,我將如何創建自己的自定義過濾器,該過濾器僅接受數字輸入文本字段?

編輯:
這是我打字的照片
在此處輸入圖片說明

“ RichEdit”控件類具有其自己的樣式集

但是據MSDN, ES_NUMBER是其中之一。 但是,請注意ElmueSoft的評論。

要將輸入過濾為僅數字而無需控件的幫助,可以將其子類化。 但是,您需要處理很多消息。 WM_CHAR最明顯,但是WM_PASTEWM_SETTEXT可以傳入非數字文本。

有關子類的好信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM