主题:[求助]关于MFC消息映射的问题
1、我在创建托盘程序时用代码创建了右键菜单:
menu.AppendMenu(MF_STRING,ID_SHOWWINDOW,_T("显示"));
menu.AppendMenu(MF_STRING,WM_DESTROY,_T("关闭"));
menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this);
菜单能正确显示,“关闭”菜单项能正确响应消息,关闭窗口;
我在头文件中添加“显示”的消息响应函数:
afx_msg void OnShow();
在CPP文件中增加消息定义和消息映射:
#define ID_SHOWWINDOW (WM_USER +1987)
BEGIN_MESSAGE_MAP(CTest0Dlg, CDialog)
//{{AFX_MSG_MAP(CTest0Dlg)
//}}AFX_MSG_MAP
ON_MESSAGE(ID_SHOWWINDOW,MyShowWnd)
END_MESSAGE_MAP()
并在CPP文件加入消息处理函数:
void CTest0Dlg::MyShowWnd()
{
this->ShowWindow(SW_SHOW);
MessageBox("show window");
}
执行程序却得不到任何响应。
2、我用CTreeCtrl类创建了树型控件:
CTreeCtrl m_wndTree;
通过InsertItem函数建立了一些节点:
m_wndTree.InsertItem("节点1",0,0,0);
m_wndTree.InsertItem("节点2",0,0,0);
m_wndTree.InsertItem("节点3",0,0,0);
当用户鼠标改变这些节点的时候,我想增加一些消息响应处理,但不知道从哪里下手。
当我新建一个工程,利用资源视图创建树型控件,并使用ClassWizard增加消息响应函数得到:
BEGIN_MESSAGE_MAP(CTestdlgDlg, CDialog)
//{{AFX_MSG_MAP(CTestdlgDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
我也照猫画虎,在我的工程中写入
BEGIN_MESSAGE_MAP(CTestdlgDlg, CDialog)
//{{AFX_MSG_MAP(CTestdlgDlg)
ON_NOTIFY(TVN_SELCHANGED, m_wndTree, OnSelchangedMyWndTree)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
并在头文件中加入消息响应函数声明,在CPP文件中加入消息处理函数,但出现了编译错误。
我在实验时出现了如上的问题,恳请高手们指点一二,不胜感激!
menu.AppendMenu(MF_STRING,ID_SHOWWINDOW,_T("显示"));
menu.AppendMenu(MF_STRING,WM_DESTROY,_T("关闭"));
menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this);
菜单能正确显示,“关闭”菜单项能正确响应消息,关闭窗口;
我在头文件中添加“显示”的消息响应函数:
afx_msg void OnShow();
在CPP文件中增加消息定义和消息映射:
#define ID_SHOWWINDOW (WM_USER +1987)
BEGIN_MESSAGE_MAP(CTest0Dlg, CDialog)
//{{AFX_MSG_MAP(CTest0Dlg)
//}}AFX_MSG_MAP
ON_MESSAGE(ID_SHOWWINDOW,MyShowWnd)
END_MESSAGE_MAP()
并在CPP文件加入消息处理函数:
void CTest0Dlg::MyShowWnd()
{
this->ShowWindow(SW_SHOW);
MessageBox("show window");
}
执行程序却得不到任何响应。
2、我用CTreeCtrl类创建了树型控件:
CTreeCtrl m_wndTree;
通过InsertItem函数建立了一些节点:
m_wndTree.InsertItem("节点1",0,0,0);
m_wndTree.InsertItem("节点2",0,0,0);
m_wndTree.InsertItem("节点3",0,0,0);
当用户鼠标改变这些节点的时候,我想增加一些消息响应处理,但不知道从哪里下手。
当我新建一个工程,利用资源视图创建树型控件,并使用ClassWizard增加消息响应函数得到:
BEGIN_MESSAGE_MAP(CTestdlgDlg, CDialog)
//{{AFX_MSG_MAP(CTestdlgDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
我也照猫画虎,在我的工程中写入
BEGIN_MESSAGE_MAP(CTestdlgDlg, CDialog)
//{{AFX_MSG_MAP(CTestdlgDlg)
ON_NOTIFY(TVN_SELCHANGED, m_wndTree, OnSelchangedMyWndTree)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
并在头文件中加入消息响应函数声明,在CPP文件中加入消息处理函数,但出现了编译错误。
我在实验时出现了如上的问题,恳请高手们指点一二,不胜感激!