關於響應自定義控制項雙擊訊息的總結

2021-05-23 15:00:29 字數 796 閱讀 3652

雙擊訊息的結構

nmhdr nmh;

nmh.code = custom_selchange; // message type defined by control.

nmh.idfrom = getdlgctrlid(m_controlhwnd);

nmh.hwndfrom = m_controlhwnd;

sendmessage(getparent(m_controlhwnd), wm_notify, (wparam)m_controlhwnd, (lparam)&nmh);

子控制項向父視窗傳送wm_notify訊息
父視窗響應函式分為兩種方法:
1:新增on_notify_range(nm_click, idc_x,idc_x+100, onclick×)訊息,
響應函式:void cview::ondblclkx(nmhdr* pnmhdr, lresult* presult)
2:新增onnotify函式
bool cview::onnotify(wparam wparam, lparam lparam, lresult* presult)
根據實際情況決定是否應該呼叫基類的響應函式
第一種方法是第二種方法的高階封裝;
微軟的封裝形式:
bool cwnd::onnotify(wparam, lparam lparam, lresult* presult)

關於自定義控制項的隨筆

在vs設計器中使用自定義控制項,需要先保證包含該自定義控制項的專案已被成功編譯,實際上該控制項在被設計器使用之時,部分內部邏輯已經在被呼叫了,比如說如果重寫onpaint方法,那麼其中的邏輯 便會被呼叫,就像下面這個簡單的控制項 using system using system.collectio...

VC 中新增響應自定義訊息

define wm debug wm user 1 2.在視窗標頭檔案中新增 比如mainframe.h class cmainframe public cframewnd afx msg afx msg lresult ondebug wparam wparam,lparam lparam 3.在...

C 中新增自定義訊息的響應

1首先要在視窗類的cpp檔案手動新增訊息響應機制,afx msg map end message map 2 其次在視窗類h檔案新增如下 generated message map functions afx msg declare message map 3 實現響應函式,long dlg ono...