控制項的WM NOTIFY訊息對映

2021-03-31 08:56:59 字數 701 閱讀 9914

控制項的wm_notify訊息對映

前幾天,我嘗試在clistctrl中對映hdn_begintrack這個wm_notify訊息。

輕鬆的用classwizard建立了訊息對映,幾秒中完成了所有工作之後發生的事情卻讓我很長時間輕鬆不起來了。

訊息根本對映不上!!

begin_message_map(cprevlist, clistctrl)

//}afx_msg_map

end_message_map()

void cprevlist::onbegintrack(nmhdr* pnmhdr, lresult* presult)

此後我在這個問題上苦惱了很久,最後發現了兩種解決辦法

1,對訊息對映兩次,分別是***xw和***xa

2,過載cwnd::onnotify虛函式在其中對***xw和***xa分別處理

bool cprevlist::onnotify(wparam wparam, lparam lparam, lresult* presult)

反觀問題的產生完全是作業系統惹的禍,我的作業系統是win2k(vc6無sp)

win2k使用wide char,就是常說的unicode,在win2k下訊息對應著wm_***xw

而早期win9x使用ascii,訊息為wm_***xa。

要想使用某些控制項的wm_notify訊息就必須自己做類似上面的處理……

WM Notify與訊息反射

關於wm notify與訊息反射 耗費我兩天時間才解決的問題 綜合資源電子書社群 其實,問題很簡單,我想在listctrl響應nm setfocus的同時通知其父視窗 其實我這句話說錯了,listctrl只能響應 nm setfocus,為什麼有個 呢?稍後解釋 最幼稚的想法是讓在listctrl和...

WM NOTIFY訊息流程例項分析

我們以clistctrl控制項為例來分析wm notify訊息。clistctrl控制項在report樣式下會包含cheaderctrl標頭控制項,即cheaderctrl標頭控制項為clistctrl控制項的子控制項,所以不難理解,拖動cheaderctrl標頭控制項的列分隔欄會投遞hdn beg...

WM NOTIFY訊息流程例項分析

我們以clistctrl控制項為例來分析wm notify訊息。clistctrl控制項在report樣式下會包含cheaderctrl標頭控制項,即cheaderctrl標頭控制項為clistctrl控制項的子控制項,所以不難理解,拖動cheaderctrl標頭控制項的列分隔欄會投遞hdn beg...