VC 给列表框添加【右键按键菜单】功能

44 篇文章 0 订阅
10 篇文章 0 订阅
1.在项目资源文件中加入一个新的Menu资源,作为右键点击弹出的菜单。
  并在Menu上面填上相应的响应的子菜单。
如图:
 

填好相应的ID值:
Caption          -> ID
Menu              -> IDR_MENU_BATCH_RCLICK
Edit Song      -> ID_BATCH_MENU_EDIT_SONG
Delete Song -> ID_BATCH_MENU_DEL_SONG

2.在List控件的事件响应函数中,加入对"NM_RCLICK"消息的响应。

void KodBatchSongDlg::OnNMRclickListBactsong(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	if(pNMListView->iItem != -1)
	{
		DWORD dwPos = GetMessagePos();
		CPoint point( LOWORD(dwPos), HIWORD(dwPos) );

		CMenu menu;
		VERIFY( menu.LoadMenu( IDR_MENU_BATCH_RCLICK ) );
		CMenu* popup = menu.GetSubMenu(0);
		ASSERT( popup != NULL );
		popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
	} 
}

其中,IDR_MENU_BATCH_RCLICK 为在资源文件中新添加的右键菜单弹出的Menu的ID.

3.添加子菜单的响应函数:
 A.点击子菜单的某一项 -> "添加事件处理程序..." 。
 B.在弹出的"事件处理程序向导"对话框中的类列表中选中List控件所在的类,
   然后在消息类型中选择"COMMAND",函数处理程序名称可以自己编辑一下,
   然后点击"添加编辑"。 这样就生成了一个子菜单点击响应的函数。
【此次界面操作,编译器会自动在响应的CPP文件中加入如下代码:

BEGIN_MESSAGE_MAP(KodBatchSongDlg, CDialog)
 ON_COMMAND(ID_BATCH_MENU_EDIT_SONG, &KodBatchSongDlg::OnBatchMenuEditSong)
END_MESSAGE_MAP()

void KodBatchSongDlg::OnBatchMenuEditSong()
{
 // TODO: 在此添加命令处理程序代码
}

并把OnBatchMenuEditSong()函数在类里面做一个声明。

4.填充OnBatchMenuEditSong函数,添加响应的程序代码即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值