其实这个弹出式菜单就是SDI文档的IDR_MAINFRAM菜单的一个下拉菜单,
但是
pSubMenu = ::AfxGetMainWnd()->GetMenu()->GetSubMenu(nPos);
pSubMenu->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN,....
弹出来的菜单却无法收到ON_UPDATE_COMMAND_UI。应该怎么办呢?
但是
pSubMenu = ::AfxGetMainWnd()->GetMenu()->GetSubMenu(nPos);
pSubMenu->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN,....
弹出来的菜单却无法收到ON_UPDATE_COMMAND_UI。应该怎么办呢?
解决方案 »
- 已知鼠标滑过的关键点,如何构造一个平滑的弧线
- dll模块改成release版本后远程注入失败
- CScrollView的滑块
- VC的SDK开发 ,在输入窗口上有许多栏位窗口,有何好的方法可使,当回车时,当前焦点自动跳到下个栏位...
- 初学: HOWTO: Get IHTMLDocument2 from a HWND
- 请问谁有没有邮箱服务器端的代码?也就是实现直接发送邮件到对方的服务器,而不用通过其他的smtp服务器中专!
- 如何实现EDIT控件数组,并将一个普通数组和EDIT控件数组关联起来??
- 100分送上了,我有一个读取odbc的类,但是读出来的字段顺序是乱的,不知那位高手能帮忙推敲一下,分不够可再给
- 关于开发dhcpclient
- 请问在对话框响应WM_DROPFILES消息的时候,应该怎么写
- 请问:关于设计模式(c++)的电子书籍现在比较不错的是什么书?
- 位掩码
这个宏不就是用来判断相应的菜单是否可用么
她可以作出响应不就是判断相应的菜单是否可用么
可以有其他的命令响应么?
ui.m_pMenu = pSubMenu;
ui.m_nIndexMax = pSubMenu->GetMenuItemCount();
CCmdTarget *pTarget = static_cast< CCmdTarget* >( ::AfxGetMainWnd() );for( long i = pSubMenu->GetMenuItemCount(); i; --i )
{
ui.m_nIndex = i - 1;
ui.m_nID = pSubMenu->GetMenuItemID( ui.m_nIndex ); ui.DoUpdate( pTarget, TRUE );
}
CMenu menu;
menu.LoadMenu(IDR_MENU_POPUP);
CMenu* pPopupMenu = menu.GetSubMenu(1);
if (pPopupMenu)
{
if (...)//enable
{
pPopupMenu->DeleteMenu(0, MF_BYPOSITION);
//pPopupMenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
pPopupMenu->InsertMenu(0, MF_BYPOSITION | MF_STRING, ID_POPUP_ITEM_OPEN, _T("Open"));
pPopupMenu->SetDefaultItem(ID_POPUP_ITEM_OPEN);
}
else
{
pPopupMenu->EnableMenuItem(ID_POPUP_ITEM_REMOVE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
pPopupMenu->EnableMenuItem(ID_POPUP_ITEM_SYNC, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
pPopupMenu->EnableMenuItem(ID_POPUP_ITEM_PROPERTIES, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
} CPoint pt;
GetCursorPos(&pt);
pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, pt.x, pt.y, this);
}