IDR_MENU1でメニュー(下にポップアップ)を作成します。
以下のように位置を取得して表示します。
void C〜Dlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{//NM_RCLICK
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
CMenu cme;
LPNMLISTVIEW lpnmlv=(LPNMLISTVIEW)pNMHDR;
POINT pt=lpnmlv->ptAction;
::ClientToScreen(pNMHDR->hwndFrom,&pt);
cme.LoadMenu(IDR_MENU1);
cme.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTBUTTON|TPM_RIGHTBUTTON,
pt.x,pt.y,this);
*pResult = 0;
}
void C〜Dlg::OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu)
{
CDialog::OnMenuSelect(nItemID, nFlags, hSysMenu);
// TODO: この位置にメッセージ ハンドラ用のコードを追加してください
POSITION pos;
int rel,oki;
CListCtrl *clc=(CListCtrl *)GetDlgItem(IDC_LIST1);
pos=clc->GetFirstSelectedItemPosition();
if(pos)
{
rel=clc->GetNextSelectedItem(pos);
oki=clc->GetItemData(rel);
switch(nItemID)
{
case IDM_OKI_INS:
InsOki(oki);
break;
case IDM_OKI_DEL:
DelOki(oki);
break;
}
}
}