如果有这样的函数BOOL CGameRoomEx::OnCommand(WPARAM wParam, LPARAM lParam)
{
}这是消息映射
BEGIN_MESSAGE_MAP(CGameRoomEx, CBaseRoom)
ON_MESSAGE(WM_SPLIT_WND,OnSplitMessage) //子类分割条
ON_MESSAGE(WM_DUIHUAN, OnDuiHuan)
ON_MESSAGE(WM_FINDDESKDLG, OnFindDesk) //手工找座
ON_MESSAGE(WM_SETDOWN, OnSetDown) //手工找座
ON_WM_PAINT()
ON_WM_SHOWWINDOW()
ON_MESSAGE(WM_HIT_EXPMESSTION,OnExpression)ON_MESSAGE(WM_RIGHT_MOUSE_HIT_DESK,OnRightHitDesk)
ON_BN_CLICKED(IDC_GAME_FACE, OnBnClickedGameFace)
ON_BN_CLICKED(IDC_FIND, OnFindNullDesk)
ON_BN_CLICKED(IDC_FINDPER, ShowFindUser)
ON_BN_CLICKED(IDC_TELL, OnTellWin)ON_BN_CLICKED(IDC_DESK_ALL, OnSelectDeskShowType)
ON_BN_CLICKED(IDC_DESK_FRIEND, OnSelectDeskShowType)
ON_BN_CLICKED(IDC_EDSK_FANT, OnSelectDeskShowType)
ON_BN_CLICKED(IDC_DESK_WAIT, OnSelectDeskShowType)ON_BN_CLICKED(IDC_SET, OnBnClickedRoomSet)
//ON_BN_CLICKED(IDC_ADDROOM, OnBnClickedRoomSet)
ON_BN_CLICKED(IDC_OTHER, OnGreenChannel)
ON_BN_CLICKED(IDC_EXCHANGE, OnExChange)
ON_BN_CLICKED(IDC_ROOM_SET, OnBnClickedRoomSet)
ON_BN_CLICKED(IDC_HIDE_RIGHT, OnBnClickedHideRight)
ON_NOTIFY(NM_RCLICK, IDC_USER_LIST, OnNMRclickUserList)
ON_NOTIFY(NM_DBLCLK, IDC_USER_LIST, OnNMDblclkUserList)
ON_NOTIFY(NM_RCLICK, IDC_USER_FRIEND, OnNMRclickUserListFriend)
ON_NOTIFY(NM_DBLCLK, IDC_USER_FRIEND, OnNMDblclkUserListFriend)
ON_WM_TIMER()
ON_WM_VSCROLL()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
请问哪个映射对应这个函数?
我觉得应该有ON_WM_COMMAND(),可是原代码没有,那这个函数杂执行呀,反正在本类中没有调用,使用查找也没找到在那调用。
{
}这是消息映射
BEGIN_MESSAGE_MAP(CGameRoomEx, CBaseRoom)
ON_MESSAGE(WM_SPLIT_WND,OnSplitMessage) //子类分割条
ON_MESSAGE(WM_DUIHUAN, OnDuiHuan)
ON_MESSAGE(WM_FINDDESKDLG, OnFindDesk) //手工找座
ON_MESSAGE(WM_SETDOWN, OnSetDown) //手工找座
ON_WM_PAINT()
ON_WM_SHOWWINDOW()
ON_MESSAGE(WM_HIT_EXPMESSTION,OnExpression)ON_MESSAGE(WM_RIGHT_MOUSE_HIT_DESK,OnRightHitDesk)
ON_BN_CLICKED(IDC_GAME_FACE, OnBnClickedGameFace)
ON_BN_CLICKED(IDC_FIND, OnFindNullDesk)
ON_BN_CLICKED(IDC_FINDPER, ShowFindUser)
ON_BN_CLICKED(IDC_TELL, OnTellWin)ON_BN_CLICKED(IDC_DESK_ALL, OnSelectDeskShowType)
ON_BN_CLICKED(IDC_DESK_FRIEND, OnSelectDeskShowType)
ON_BN_CLICKED(IDC_EDSK_FANT, OnSelectDeskShowType)
ON_BN_CLICKED(IDC_DESK_WAIT, OnSelectDeskShowType)ON_BN_CLICKED(IDC_SET, OnBnClickedRoomSet)
//ON_BN_CLICKED(IDC_ADDROOM, OnBnClickedRoomSet)
ON_BN_CLICKED(IDC_OTHER, OnGreenChannel)
ON_BN_CLICKED(IDC_EXCHANGE, OnExChange)
ON_BN_CLICKED(IDC_ROOM_SET, OnBnClickedRoomSet)
ON_BN_CLICKED(IDC_HIDE_RIGHT, OnBnClickedHideRight)
ON_NOTIFY(NM_RCLICK, IDC_USER_LIST, OnNMRclickUserList)
ON_NOTIFY(NM_DBLCLK, IDC_USER_LIST, OnNMDblclkUserList)
ON_NOTIFY(NM_RCLICK, IDC_USER_FRIEND, OnNMRclickUserListFriend)
ON_NOTIFY(NM_DBLCLK, IDC_USER_FRIEND, OnNMDblclkUserListFriend)
ON_WM_TIMER()
ON_WM_VSCROLL()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
请问哪个映射对应这个函数?
我觉得应该有ON_WM_COMMAND(),可是原代码没有,那这个函数杂执行呀,反正在本类中没有调用,使用查找也没找到在那调用。
是在基类CWnd中被调用的。部分代码如下。
BOOL CWnd::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
LRESULT lResult = 0;
union MessageMapFunctions mmf;
mmf.pfn = 0;
CInternalGlobalLock winMsgLock;
// special case for commands
if (message == WM_COMMAND)
{
if (OnCommand(wParam, lParam))
{
lResult = 1;
goto LReturnTrue;
}
return FALSE;
}
。