控件右键菜单的响应函数 如何让控件继承的类如CListCtrl控件实现响应右键菜单的函数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如在对话框里列表控件: 1.加个菜单资源 2.在建立类向导里,找到控件的列表ID,为其添加右键消息 3.在消息响应里写 如: POINT _point; ::GetCursorPos(&_point); CMenu menu; menu.CreatePopupMenu(); menu.LoadMenu(IDR_ListCtrlMenu);//TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON //menu.AppendMenu(MF_STRING,ID_ListCtrlMenu,""); menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON|TPM_RIGHTBUTTON, _point.x, _point.y, this); 4.再为菜单添加响应函数即可..... .h里面追加afx_msg void OnRButtonUp(UINT nFlags,CPoint point);.cpp里面追加ON_WM_RBUTTONUP( )void CComponent::OnRButtonDown(UINT nFlags, CPoint point) {CMenu menu; menu.CreatePopupMenu(); POINT cPs; ::GetCursorPos(&cPs); UINT uCut = MF_ENABLED; UINT uCopy = MF_ENABLED; UINT uPaste = MF_ENABLED; UINT uInsert = MF_ENABLED; DWORD dw = GetSel(); int nHi = HIWORD(dw); int nLow = LOWORD(dw); if(nHi == nLow) { uCut = MF_GRAYED; uCopy = MF_GRAYED; } if(!::IsClipboardFormatAvailable(CF_TEXT)) { uPaste = MF_GRAYED; uInsert = MF_GRAYED; } menu.AppendMenu(MF_ENABLED,(UINT)QTEDIT_EDIT_MENU_SEARCH,QTEDIT_EDIT_MENU_STR_SEARCH); menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(uCut, (UINT)QTEDIT_EDIT_MENU_CUT, QTEDIT_EDIT_MENU_STR_CUT); menu.AppendMenu(uCopy, (UINT)QTEDIT_EDIT_MENU_COPY, QTEDIT_EDIT_MENU_STR_COPY); menu.AppendMenu(uPaste, (UINT)QTEDIT_EDIT_MENU_PASTE, QTEDIT_EDIT_MENU_STR_PASTE); menu.AppendMenu(uInsert,(UINT)QTEDIT_EDIT_MENU_PASTEOK,QTEDIT_EDIT_MENU_STR_PASTEOK); menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, cPs.x,cPs.y,this, rect); SetCapture(); CListCtrl::OnRButtonDown(nFlags, point);}...里面大写的玩意市常量 求救!控件绘画的透明图片在控件失去焦点时不能显示! 菜鸟告急:vc中使用宏定义这个"宏"到底是什么意思? 如何调用vst插件 了解dll编程的请进来一下,在线等待! 一个棘手的问题,高手请进。 想不通,各位进来看看 有关include之后得问题 紧急求救!为什么我用MoveWindow(...),控件却在对话框上消失了? 《mfc深入浅出》所带的光盘中的例子,在vc和c++下运行不了呀,怎么样才能运行呀,请个位大侠年指点,小弟深表感谢谢!!!事后必拱手献10 关于文本内容获取的问题。 CString 变量的错误 [求助]iphlpapi.h的使用?
1.加个菜单资源
2.在建立类向导里,找到控件的列表ID,为其添加右键消息
3.在消息响应里写
如:
POINT _point;
::GetCursorPos(&_point);
CMenu menu;
menu.CreatePopupMenu();
menu.LoadMenu(IDR_ListCtrlMenu);//TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON
//menu.AppendMenu(MF_STRING,ID_ListCtrlMenu,"");
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON|TPM_RIGHTBUTTON, _point.x,
_point.y, this);
4.再为菜单添加响应函数即可.....
afx_msg void OnRButtonUp(UINT nFlags,CPoint point);
.cpp里面追加
ON_WM_RBUTTONUP( )
void CComponent::OnRButtonDown(UINT nFlags, CPoint point)
{CMenu menu;
menu.CreatePopupMenu();
POINT cPs;
::GetCursorPos(&cPs);
UINT uCut = MF_ENABLED;
UINT uCopy = MF_ENABLED;
UINT uPaste = MF_ENABLED;
UINT uInsert = MF_ENABLED; DWORD dw = GetSel();
int nHi = HIWORD(dw);
int nLow = LOWORD(dw);
if(nHi == nLow)
{
uCut = MF_GRAYED;
uCopy = MF_GRAYED;
}
if(!::IsClipboardFormatAvailable(CF_TEXT))
{
uPaste = MF_GRAYED;
uInsert = MF_GRAYED;
}
menu.AppendMenu(MF_ENABLED,(UINT)QTEDIT_EDIT_MENU_SEARCH,QTEDIT_EDIT_MENU_STR_SEARCH);
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(uCut, (UINT)QTEDIT_EDIT_MENU_CUT, QTEDIT_EDIT_MENU_STR_CUT);
menu.AppendMenu(uCopy, (UINT)QTEDIT_EDIT_MENU_COPY, QTEDIT_EDIT_MENU_STR_COPY);
menu.AppendMenu(uPaste, (UINT)QTEDIT_EDIT_MENU_PASTE, QTEDIT_EDIT_MENU_STR_PASTE);
menu.AppendMenu(uInsert,(UINT)QTEDIT_EDIT_MENU_PASTEOK,QTEDIT_EDIT_MENU_STR_PASTEOK);
menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, cPs.x,cPs.y,this, rect);
SetCapture();
CListCtrl::OnRButtonDown(nFlags, point);}
...
里面大写的玩意市常量