[英]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.