创建一个成员函数buttom1();
头文件加
afx_msg void buttom1();再在cpp文件中
BEGIN_MESSAGE_MAP()END_MESSAGE_MAP()
间加消息映射
如:
BEGIN_MESSAGE_MAP()ON_COMMAND(ID_1,buttom1)END_MESSAGE_MAP()其中ID_1为你菜单各项的ID,如"广东"的ID.最后在 void buttom1()
{}
加你的处理代码就可以啦
头文件加
afx_msg void buttom1();再在cpp文件中
BEGIN_MESSAGE_MAP()END_MESSAGE_MAP()
间加消息映射
如:
BEGIN_MESSAGE_MAP()ON_COMMAND(ID_1,buttom1)END_MESSAGE_MAP()其中ID_1为你菜单各项的ID,如"广东"的ID.最后在 void buttom1()
{}
加你的处理代码就可以啦
to:miaoshengwu(孤单北半球),我看了那篇文章,非常感谢你,但那里主要是利用MFC的CMENU来做的,而我的程序则是利用HMENU来做的,现在我介绍一下我原来菜单的思路:首先我在resourceview中建立一个菜单IDR_MENU1,这是一个空的菜单资源,然后在我的对话框IDD_DIALOG1属性里的MENU选择IDR_MENU1作为该对话框的菜单,然后我在一个数据表中取一些树形记录,如广东省-广州市,顶级节点为地区,把这些数据放在这个菜单上,最后显示效果是地区-广东省-广州市,这个效果我已经实现了,用的是HMENU,之所以用这个主要是我不知道CMENU如何实现,代码如下:
int CDialog1::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
HMENU classmenu=::GetMenu(this->m_hWnd); //这句话是获得当前对话框菜单的实例
HMENU popmenu=::CreatePopupMenu();
::InsertMenu(classmenu, 1, MF_BYPOSITION|MF_STRING|MF_POPUP, UINT(popmenu), "地区");
HMENU submenu=::GetSubMenu(classmenu,1);
HMENU thirdmenu;
::InsertMenu(submenu,i,MF_BYPOSITION|MF_STRING|MF_POPUP,UINT(popmenu),"广东省");
thirdmenu=::GetSubMenu(submenu,0);
::AppendMenu(thirdmenu,MF_STRING,1001,_T("广州市"));
::DrawMenuBar(this->m_hWnd);
}
请问我如何实现这个菜单的消息呢,请大家赐教!
UINT uRetID=::TrackPopupMenu(classmenu,TPM_RETURNCMD,0,0,0,this->m_hWnd,(RECT*)NULL);
switch(uRetID)
{
case 1001:MessageBox("您点中了1001");break;
}
但没有程序没有反应,我认为问题包括:
1、TrackPopupMenu函数能不能这样用还是个大问题,其中的坐标值我没法给;
2、这种做法既使捕捉到消息,也只能获取到点击广州市的消息,而无法获取广东省的消息,因为可以看到广东省没有ID值。
请大家帮帮忙呀,先谢谢了。