mfc中菜单的使用,绑定函数还是传递参数,求大神!

北风催呀催 2018-03-14 11:30:58
在做mfc菜单的时候遇到了个问题,需要菜单项(打开)响应一个在CListCtrl中的双击事件(也就是打开文件)。但是双击事件有参数,不知道该如何进行。双击事件:
void CDocumentManagementDlg::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)

这两个参数弄得我一头雾水,求大神解答。
...全文
387 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2018-03-15
  • 打赏
  • 举报
回复
响应菜单中 加入 这2个 参数 然后 调用 OnDblclkList
北风催呀催 2018-03-15
  • 打赏
  • 举报
回复
这个是两个CListCtrl的双击事件,直接复制的吗。我是一个是双击,另一个是菜单怎么弄啊。菜单点击事件没有这两个参数。
schlafenhamster 2018-03-15
  • 打赏
  • 举报
回复
例子

void CDlgTest::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	NMLISTVIEW* pNMListView = (NMLISTVIEW*)pNMHDR;
	m_ListSelected=pNMListView->iItem;
	m_ListSubItem=pNMListView->iSubItem;
// new column
	if(m_ListSelected >=0)
	{
		CRect rc;
		m_List.GetSubItemRect(m_ListSelected,m_ListSubItem,LVIR_LABEL,rc);
 		m_List.MapWindowPoints(this,&rc);
		m_Edit2.MoveWindow(rc);
		m_Edit2.SetFocus();
		CString txt=m_List.GetItemText(m_ListSelected,m_ListSubItem);
		m_Edit2.SetWindowText(txt);
		m_Edit2.SetSel(0,-1);
	}
	
	*pResult = 0;
}
//
void CDlgTest::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NMLISTVIEW* pNMListView = (NMLISTVIEW*)pNMHDR;
	m_ListSelected=pNMListView->iItem;
	m_ListSubItem=pNMListView->iSubItem;

	if(m_ListSelected >=0)
	{
		CRect rc;
		m_List2.GetSubItemRect(m_ListSelected,m_ListSubItem,LVIR_LABEL,rc);
 		m_List2.MapWindowPoints(this,&rc);
		m_Edit2.MoveWindow(rc);
		m_Edit2.SetFocus();
		CString txt=m_List2.GetItemText(m_ListSelected,m_ListSubItem);
		m_Edit2.SetWindowText(txt);
		m_Edit2.SetSel(0,-1);
	}
//
	*pResult = 0;
}
北风催呀催 2018-03-15
  • 打赏
  • 举报
回复
非常感谢。我一直想怎么把函数绑定。一语点醒。 在菜单点击函数里用m_list.GetSelectionMark();获取被选中的内容就可以了。 其他代码不变,只替换这个就好了: NMLISTVIEW* pNMListView = (NMLISTVIEW*)pNMHDR; m_ListSelected=pNMListView->iItem;
北风催呀催 2018-03-15
  • 打赏
  • 举报
回复
直接加参数没反应,这个参数pNMHDR没传递过去啊 NMLISTVIEW* pNMListView = (NMLISTVIEW*)pNMHDR; m_ListSelected=pNMListView->iItem; 如果加参数应该需要传递吧
schlafenhamster 2018-03-15
  • 打赏
  • 举报
回复
在 菜单上 点击 ,因为 没有 位置 信息, 就 不知道 当前 点击项, 是否可以用 选择项 来 代替,直接 对 list 操作。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧