MFC 左、右键点击按钮的实现

作者&投稿:房和 (若有异议请与网页底部的电邮联系)
怎么在mfc中实现 button的右击事件?~

可以借助于vs开发的classwizard功能添加右键事件响应。
1、在资源视图中首先要选择视图,然后选择WM_RIGHTBUTTONDOWN添加事件响应;

2、在代码里面查看响应事件函数;

代码示例
afx_msg void OnRButtonDown( UINT nFlags, CPoint point );
{

// TODO: Add your message handler code hereand/or call default
Flag=false;
DoSomeThing();
CView::OnRButtonDown(nFlags,point);
}

已做,下载附件即可。


按钮控件的左键单击消息是默认的,直接ClassWizard添加即可。

右键消息按钮控件默认是不支持的,需要自己处理。

两种办法:

  1. 派生一个自己的按钮类,并绑定指定控件。在自定义按钮类中处理WM_RBUTTONDOWN消息。

  2. 在对话框所在类CXXXDlg里面重载 PreTranslateMessage,并在其中这样处理消息:

BOOL CXXXDlg::PreTranslateMessage(MSG *pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_RBUTTONDOWN)       //可以改为任何消息
{
CRect r;
::GetWindowRect(GetDlgItem(IDC_00)->GetSafeHwnd(),&r);   //得到button所在的rect
POINT pt;
::GetCursorPos(&pt);             //得到鼠标动作的位置
if (PtInRect(&r,pt))        //判断鼠标动作是否在button范围之内     
{
AfxMessageBox(_T("右键单击"));
}
}
return CDialog::PreTranslateMessage(pMsg);
}



广西壮族自治区13669616650: MFC 左、右键点击按钮的实现 -
张玉新德: 按钮控件的左键单击消息是默认的,直接ClassWizard添加即可. 右键消息按钮控件默认是不支持的,需要自己处理. 两种办法: 1. 派生一个自己的按钮类,并绑定指定控件.在自定义按钮类中处理WM_RBUTTONDOWN消息. 2. 在对话框所...

广西壮族自治区13669616650: MFC怎样实现右键来点击按钮 -
张玉新德: 在你要实现这个功能的类里面 添加 WM_RBUTTONDOWN 消息 将CDialog::OnRButtonDown(nFlags, point);改为 CDialog::OnLButtonDown(nFlags, point);

广西壮族自治区13669616650: 怎么在mfc中实现 button的右击事件? -
张玉新德: 可以借助于vs开发的classwizard功能添加右键事件响应.1、在资源视图中首先要选择视图,然后选择WM_RIGHTBUTTONDOWN添加事件响应;2、在代码里面查看响应事件函数;代码示例 afx_msg void OnRButtonDown( UINT nFlags, CPoint point ); {// TODO: Add your message handler code hereand/or call default Flag=false; DoSomeThing(); CView::OnRButtonDown(nFlags,point); }

广西壮族自治区13669616650: mfc 怎样为一个menu添加一个点击事件 -
张玉新德: 有两种方法:1.直接右键这个菜单,在弹出的classwizard对话框里面增加command;2直接在类向导里面,增加command就可以了.点击事件实际上就是相应鼠标左键点击事件,也就是wm_lbuttondown

广西壮族自治区13669616650: 怎样用c++MFC实现点击按钮显示图片 -
张玉新德: 1. 添加picture control的变量m_st,添加picture control的BN_CLICKED消息响应在按钮里加 if(flag == 0) { CWnd * pWnd = GetDlgItem(IDC_STATIC);

广西壮族自治区13669616650: mfc实现点击按钮,在列表框中显示"123";按钮和列表框的代码怎么写?需要怎么设置消息或类或变量? -
张玉新德: 1.取得列表框的指针.或者可以为列表框添加一个关联变量,空间类型的.2.在按钮的单击事件中,使用列表框对象的成员函数.应该是addstring或者insertstring.然后updatedata就可以了.

广西壮族自治区13669616650: vs2010基于对话框的mfc工程怎样实现点击按钮更新对话框的部分内容 -
张玉新德: 在对话框设计窗口,右键打开属性窗口,sys menu这个栏可以设置为true.

广西壮族自治区13669616650: mfc中如何实现点击一个按钮等于点击多个按钮? -
张玉新德: 1、方法 为其他点击后需要响应的按钮分别编写响应函数.其中,响应函数要写在被点击按钮的点击事件中.2、示例 考虑4个按钮,btn1,btn2,btn3,btn4.单击btn1,4个按钮都响应.比如btn2的响应函数为OnButton2, bnt3的响应函数为OnButton3, bnt4的响应函数为OnButton4, 如下方法就可以 void CChat1Dlg::OnButton1() { OnButton2(); OnButton3(); OnButton4(); }

广西壮族自治区13669616650: MFC中单击button并随鼠标移动怎么实现? -
张玉新德: 按钮移动,嘛,要相应响应WM_MOUSEDRAG事件,可以重载CButton,然后定义新的按钮变量即可; 按钮的颜色只要在上述的重载里加入属性并重绘即可,可能复杂一些,我有彩色按钮类,颜色相同只要自己制定就行 也可以用WM_MOVE吧,这个具体的你也可以查一下MSDN,上面有很详细的解释!

广西壮族自治区13669616650: MFC对话框里创建一个按钮后如何实现:点击它弹出另一个对话框? -
张玉新德: 双击按钮,在onbutton()函数内显示另一个对话框:CDialogXXX dlg; dlg.DoModal()

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网