簡體   English   中英

Win32 處理來自 Rich Edit 控件的 WM_NOTIFY 消息

[英]Win32 Handle WM_NOTIFY message from Rich Edit Control

在處理WM_NOTIFY時,如何檢索有關在富編輯控件中所做更改的信息? 更具體地說,我很困惑,因為在WM_NOTIFY 的文檔中它說lParam指向一個NMHDR結構,但在EN_CHANGE 的頁面中他們說lParam指向一個CHANGENOTIFY結構。 lParam到底指的是什么?

如果您更仔細地閱讀鏈接到的EN_CHANGE文檔,您會注意到以下警告:

https://docs.microsoft.com/en-us/windows/win32/controls/en-change--rich-edit-control-

通知無窗口富編輯控件的宿主窗口發生了更改。 Rich Edit 控件以WM_NOTIFY消息的形式發送此通知代碼。

有關更多詳細信息,請參閱無窗口富編輯控件 而且,正如您所指出的,此消息的CHANGENOTIFY結構不符合WM_NOTIFY的標准使用。 該消息在wParam中僅攜帶 RichEdit 的控件 ID,在lParam中沒有NMHDR*

如果您使用的是窗口豐富的編輯控件(我假設您是),那么它使用標准編輯控件使用的相同EN_CHANGE消息:

https://docs.microsoft.com/en-us/windows/win32/controls/en-change

當用戶執行可能更改了編輯控件中的文本的操作時發送。 EN_UPDATE通知代碼不同,此通知代碼在系統更新屏幕后發送。 編輯控件的父窗口通過WM_COMMAND消息接收此通知代碼。

...

Rich Edit:在 Microsoft Rich Edit 1.0 及更高版本中受支持。 要接收EN_CHANGE通知代碼,請在與EM_SETEVENTMASK消息一起發送的掩碼中指定ENM_CHANGE 有關富編輯版本與各種系統版本的兼容性的信息,請參閱關於富編輯控件

暫無
暫無

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

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