用下面的方法添加了一个右键菜单:#define ID_MENUITEM_STOP 0
#define ID_MENUITEM_PLAY 1
#define ID_MENUITEM_MAX 2void CrightmenuDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
GetCursorPos( & point );
CMenu menuPopup;
menuPopup.CreatePopupMenu();
if(m_playStatus == PLAY)
{
menuPopup.AppendMenu( MF_STRING, ID_MENUITEM_STOP, _T( "Stop" ) );
menuPopup.AppendMenu( MF_SEPARATOR );
menuPopup.AppendMenu( MF_STRING, ID_MENUITEM_MAX, _T( "暂停" ) );
menuPopup.AppendMenu( MF_SEPARATOR );
}
else
{
menuPopup.AppendMenu( MF_STRING, ID_MENUITEM_PLAY, _T( "Play" ) );
menuPopup.AppendMenu( MF_SEPARATOR );
}
int ncmd = ( int ) menuPopup.TrackPopupMenu(
TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON | TPM_RETURNCMD,
point.x, point.y,
this); switch( ncmd )
{
case ID_MENUITEM_STOP:
{
m_playStatus = STOP;
MessageBox("STOP"); }
break;
case ID_MENUITEM_PLAY:
{
m_playStatus = PLAY;
MessageBox("PLAY"); }
break; case ID_MENUITEM_MAX:
{
m_playStatus = PLAY;
MessageBox("MAX"); }
break;
default:
break;
}
menuPopup.DestroyMenu();
CDialog::OnRButtonDown(nFlags, point);
}
发现电击右键弹出菜单后,就算不选中菜单,在窗口上任意位置电击,都触发了菜单的第一个选项,也就是点击了第一个菜单。也就是说只要我弹出菜单,总是会触发一个点击事件,而不能放弃选择。
任务比较紧,所以没仔细的去看各个选项参数,拜托大家了。
#define ID_MENUITEM_PLAY 1
#define ID_MENUITEM_MAX 2void CrightmenuDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
GetCursorPos( & point );
CMenu menuPopup;
menuPopup.CreatePopupMenu();
if(m_playStatus == PLAY)
{
menuPopup.AppendMenu( MF_STRING, ID_MENUITEM_STOP, _T( "Stop" ) );
menuPopup.AppendMenu( MF_SEPARATOR );
menuPopup.AppendMenu( MF_STRING, ID_MENUITEM_MAX, _T( "暂停" ) );
menuPopup.AppendMenu( MF_SEPARATOR );
}
else
{
menuPopup.AppendMenu( MF_STRING, ID_MENUITEM_PLAY, _T( "Play" ) );
menuPopup.AppendMenu( MF_SEPARATOR );
}
int ncmd = ( int ) menuPopup.TrackPopupMenu(
TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON | TPM_RETURNCMD,
point.x, point.y,
this); switch( ncmd )
{
case ID_MENUITEM_STOP:
{
m_playStatus = STOP;
MessageBox("STOP"); }
break;
case ID_MENUITEM_PLAY:
{
m_playStatus = PLAY;
MessageBox("PLAY"); }
break; case ID_MENUITEM_MAX:
{
m_playStatus = PLAY;
MessageBox("MAX"); }
break;
default:
break;
}
menuPopup.DestroyMenu();
CDialog::OnRButtonDown(nFlags, point);
}
发现电击右键弹出菜单后,就算不选中菜单,在窗口上任意位置电击,都触发了菜单的第一个选项,也就是点击了第一个菜单。也就是说只要我弹出菜单,总是会触发一个点击事件,而不能放弃选择。
任务比较紧,所以没仔细的去看各个选项参数,拜托大家了。
解决方案 »
- win32和mfc 先学哪个?
- 父对话框如何才能响应子对话框中的单击事件?
- 请问一下如何去掉treecontrol的3D边框效果?
- 如何从资源管理器拖动文件到CTreeCtrl
- 动态创建的Edit控件,为何输入的字符显示为粗体,且字符在垂直方向不居中?
- 紧急求救令,关于自动拓朴发现中cisco设备的发现*******一直在线。。。
- 如何给工具栏中的按钮添加tooltiptext?急……,(vc)
- 文本编辑器
- 怎样得到和某种文件关联的图标的句柄?
- !!!!!!!!!!!!!!!!救命——MDI应用程序的问题
- 【vc6.0】如何把一个rtf文档资源内容读入RichEditCtrl中?
- drawtext的制表符拓展怎么用
改成下面的ID。#define ID_MENUITEM_STOP 1
#define ID_MENUITEM_PLAY 2
#define ID_MENUITEM_MAX 3