您的位置:首页 > 其它

ListControl响应右键,弹出菜单

2014-09-14 18:34 435 查看
void CTHREADDLG::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult)
{
//获取鼠标坐标
CPoint ptCurSel(0,0);
GetCursorPos(&ptCurSel);
//转换为当前控件坐标系的坐标
m_ctltThreadList.ScreenToClient(&ptCurSel);
LVHITTESTINFO HitTestInfo;
HitTestInfo.pt = ptCurSel;
//判断坐标命中第几项
int nItem = m_ctltThreadList.HitTest(&HitTestInfo);

//如果有选中项
if (nItem != -1)
{
//读取选中项内容
char szTmp[MAX_PATH];
m_ctltThreadList.GetItemText(nItem, 0, szTmp, MAX_PATH);
DWORD dwThreadID = strtoul(szTmp, NULL, 10);

HMODULE hDll = LoadLibrary("Kernel32.dll");
_OPENTHREAD OpenThread = (_OPENTHREAD)GetProcAddress(hDll, "OpenThread");
m_hThread = OpenThread(THREAD_ALL_ACCESS, FALSE, dwThreadID);

//弹出菜单
CMenu menu;
menu.LoadMenu(IDR_THREAD_MENU);
CPoint point;
GetCursorPos(&point);
CMenu* pSubMenu = menu.GetSubMenu(0);
pSubMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}

*pResult = 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: