LRESULT UserListViewNotify (HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HINSTANCE hInst=GetModuleHandle(NULL);
switch (((LPNMHDR) lParam)->code)
{
case NM_RCLICK:
{
NMITEMACTIVATE *lpnmitem = (LPNMITEMACTIVATE) lParam;
HMENU hMenu,hTrackMenu;
if(lpnmitem->iItem!=-1)
{
POINT point;
GetCursorPos(&point);
hMenu=LoadMenu(hInst,TEXT("USERPOPUP"));
hTrackMenu = GetSubMenu (hMenu, 0);
TrackPopupMenu(hTrackMenu,TPM_LEFTALIGN,point.x,point.y,0,lpnmitem->hdr.hwndFrom,NULL);
}
else
return FALSE;
}
break;
}
return TRUE;
}
USERPOPUP MENU DISCARDABLE
BEGIN
POPUP "user"
BEGIN
MENUITEM "删除" IDM_USER_DEL
MENUITEM "禁用" IDM_USER_DIS
END
END
这样创建一个右键菜单
如何处理IDM_USER_DEL和IDM_USER_DIS菜单消息?
{
HINSTANCE hInst=GetModuleHandle(NULL);
switch (((LPNMHDR) lParam)->code)
{
case NM_RCLICK:
{
NMITEMACTIVATE *lpnmitem = (LPNMITEMACTIVATE) lParam;
HMENU hMenu,hTrackMenu;
if(lpnmitem->iItem!=-1)
{
POINT point;
GetCursorPos(&point);
hMenu=LoadMenu(hInst,TEXT("USERPOPUP"));
hTrackMenu = GetSubMenu (hMenu, 0);
TrackPopupMenu(hTrackMenu,TPM_LEFTALIGN,point.x,point.y,0,lpnmitem->hdr.hwndFrom,NULL);
}
else
return FALSE;
}
break;
}
return TRUE;
}
USERPOPUP MENU DISCARDABLE
BEGIN
POPUP "user"
BEGIN
MENUITEM "删除" IDM_USER_DEL
MENUITEM "禁用" IDM_USER_DIS
END
END
这样创建一个右键菜单
如何处理IDM_USER_DEL和IDM_USER_DIS菜单消息?
解决方案 »
- 基于对话框 vs2008 #include"fstream.h"该放在哪个文件里?
- MFC界面问题
- 如何新建NOTEPAD并写入数据(不保存)
- VC写的程序,不知道算不算内存泄漏?
- RichEdit中的文字如何实现动态居中、左对齐或右对齐?再现等待
- 普通的窗口和对话框有什么区别?
- 使用阻塞模式在socket上进行通讯的线程怎么会出现这样的情况???
- 如何实现局域网2台电脑之间文件的互相传送?
- 一个被DISABLE的EDIT控件,在有键盘输入时怎样能不发出蜂鸣声?
- 高手请关注;一个和MSDN中Collect例中很象的,不知怎的内存溢出,高分送上,在线等!
- VisiBroker for C++不支持VC咋办?
- 关于usb端口的读写问题
这个句柄是listview这个控件的,,那么要处理菜单消息的话有什么办法?窗口子类化?