//右键单击--菜单
void CClientDlg::OnNMRclickServerList(NMHDR *pNMHDR, LRESULT *pResult)
{
m_iRcCurSel = m_LC_ServerList.GetSelectionMark();
if (m_iRcCurSel == -1)
return; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
CMenu menu;
VERIFY( menu.LoadMenu(IDR_MENU_LIST) ); //IDR_MENU是新建菜单ID
CMenu* popup = menu.GetSubMenu(0);
ASSERT( popup != NULL );
popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
} *pResult = 0;
}//菜单--开始
void CClientDlg::OnMenuStartClient()
{
//想让“开始”菜单项变灰不可用。如何实现?
}
void CClientDlg::OnNMRclickServerList(NMHDR *pNMHDR, LRESULT *pResult)
{
m_iRcCurSel = m_LC_ServerList.GetSelectionMark();
if (m_iRcCurSel == -1)
return; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
CMenu menu;
VERIFY( menu.LoadMenu(IDR_MENU_LIST) ); //IDR_MENU是新建菜单ID
CMenu* popup = menu.GetSubMenu(0);
ASSERT( popup != NULL );
popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
} *pResult = 0;
}//菜单--开始
void CClientDlg::OnMenuStartClient()
{
//想让“开始”菜单项变灰不可用。如何实现?
}
解决方案 »
- 图像处理群(最后呼叫)
- VC/MFC 一组单选按钮通过鼠标点击如何自动逐级跳动
- [在线等]datagrid显示不出来?
- 怎么回事,结贴了啊,怎么还是带个问号。俺还有个问题,CEditView类中的滚动条是自带的吗?
- 100分不够可以再加,那位知道UNDO和REDO的功能如何实现,最好有代码!
- 我的dlg.DoModal()等于 -1,为什么会这样?怎么解决?
- 请教版主和各位大侠,我现在要做一个不用装驱动程序就能直接控制打印机进行打印的DLL,请给些指导(以何种打印机为例均可),最好给段源代码,
- ADO对大二进制文件的操作
- 给个MFC 动态生成的简单例子给看下
- 出来啦!Microsoft Visual Studio 7.0!
- 提取EMF格式文件里面插入的图像数据的问题
- 关于EMF文件操作的问题
ID_MENUITEM_XXXX为OnMenuStartClient对应的项名menu.EnableMenuItem(ID_MENUITEM_XXXX, MF_GRAYED);
menu.EnableMenuItem(IDMENU_START,MF_BYCOMMAND|MF_GRAYED);
对话框菜单的话 还得添加代码上面的代码才能生效
具体代码
//右键单击--弹出菜单
void CClientDlg::OnNMRclickServerList(NMHDR *pNMHDR, LRESULT *pResult)
{
m_iRcCurSel = m_LC_ServerList.GetSelectionMark();
if (m_iRcCurSel == -1)
return; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
CMenu menu;
VERIFY( menu.LoadMenu(IDR_MENU_LIST) ); //IDR_MENU是新建菜单ID
CMenu* popup = menu.GetSubMenu(0);
ASSERT( popup != NULL );
popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
menu.EnableMenuItem(ID_MENU_PAUSE, MF_GRAYED|MF_DISABLED); //菜单中的“暂停”选项并没有变灰.........
} *pResult = 0;
}