在匹配目標類型的范圍內沒有具有該名稱的函數
2 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
首先看看這個宏 ON_MESSAGE(message,OnMyMessage); OnMyMessage返回值必須為LRESULT,其形式為:afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);如果不符合,則有錯誤提示: error C2440: “static_cast”: 無法從“void (__thiscall CPppView::* )(WPARAM,LPARAM)”轉換為“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” 在匹配目標類型的范圍內沒有具有該名稱的函數
這樣總算找到問題了,原來那個消息處理函數返回值是VOID,改了改,返回LRESULT,在函數結尾加了個return NULL, OK,這樣總算通過了。
參數加上::WPARAM wParam,LPARAM lParam

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
你把函數指針定義改成這樣就可以了
class CSceneManager ;//先聲明類
typedef bool (CSceneManager::*FnOnEvent)(const IMessage &msg);
這才是指向類成員函數的指針。
- 2 回答
- 0 關注
- 791 瀏覽
添加回答
舉報
0/150
提交
取消