CButton派生类的问题,怎么响应单击

duangexin521 2010-07-01 02:57:01
CMyButton派生自CButton,在CMyButton中重载OnLButtonDown和OnLButtonUp.
在对话框上创建两个CBUTTON控键,分别给两个CButton空间增加Control关联变量,
请教:怎样区分当前按下的是哪个按钮?
...全文
247 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gavinma 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 duangexin521 的回复:]
引用 12 楼 majianwei86 的回复:
C/C++ code

BOOL CButton_multicommandDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message==WM_LBUTT……
[/Quote]
可别叫老师 咱都是it兄弟
duangexin521 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 majianwei86 的回复:]
C/C++ code

BOOL CButton_multicommandDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message==WM_LBUTTONDOWN)
……
[/Quote]

谢谢老师,我自己解决了~~
lsq2001j 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 duangexin521 的回复:]
回复9楼

比如2个按钮 2个edit

我第一个按钮 关联变量but1,第2个按钮 关联变量but2,

我现在要实现2个按钮的OnLButtonDown和OnLButtonUp事件,怎么来实现?

but1怎么控制edit按上设置1 按下设置0

but2怎么控制edit按上设置2 按下设置3

是的 初学MFC 很多不会 能否给个例子 谢谢
[/Quote]
每个按钮都可以实现一个消息响应函数
but1实现自己的OnLButtonDown和OnLButtonUp两个消息响应函数
but2实现自己的OnLButtonDown和OnLButtonUp两个消息响应函数
注意函数名字不要相同
用向导添加消息响应函数比较省事
gavinma 2010-07-02
  • 打赏
  • 举报
回复

BOOL CButton_multicommandDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message==WM_LBUTTONDOWN)
{
CWnd *pwnd1=GetDlgItem(IDC_BUTTON1);
CWnd *pwnd2=GetDlgItem(IDC_BUTTON2);
if(GetFocus()==pwnd1)//)
{
this->UpdateData(false);
this->m_edit1="0" ;//m_edit1为IDC_EDIT1关联控件
}
else if(GetFocus()==pwnd2)
{
this->UpdateData(false);
m_edit2="3";;//m_edit2为IDC_EDIT2关联控件

}
else {}
}
if (pMsg->message==WM_LBUTTONUP)
{
CWnd *pwnd1=GetDlgItem(IDC_BUTTON1);
CWnd *pwnd2=GetDlgItem(IDC_BUTTON2);
if(GetFocus()==pwnd1)
{
this->UpdateData(false);
m_edit1="1";
}
else if(GetFocus()==pwnd2)
{
this->UpdateData(false);
m_edit2="2";
}
else {}
}
return CDialog::PreTranslateMessage(pMsg);
}
xidong_bao 2010-07-02
  • 打赏
  • 举报
回复
对资源ID添加消息响应,一个button就是一个窗口
duangexin521 2010-07-02
  • 打赏
  • 举报
回复
回复9楼

比如2个按钮 2个edit

我第一个按钮 关联变量but1,第2个按钮 关联变量but2,

我现在要实现2个按钮的OnLButtonDown和OnLButtonUp事件,怎么来实现?

but1怎么控制edit按上设置1 按下设置0

but2怎么控制edit按上设置2 按下设置3

是的 初学MFC 很多不会 能否给个例子 谢谢
gavinma 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 duangexin521 的回复:]
引用 7 楼 hcyang 的回复:
CXXXDlg(this-> GetParent()).m_test = "sss ";
这是要干啥?

((CXXXDlg*)GetParent())->m_test = "sss ";
是这个意思不?



是的。


另外我想问一下 我多个按钮

比如2个按钮

我第一个按钮 关联变量but1,第2个按钮 关联变量but……
[/Quote]
你是说要实现两个按钮分别不同的OnLButtonDown和OnLButtonUp这两个事件吗
duangexin521 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hcyang 的回复:]
CXXXDlg(this-> GetParent()).m_test = "sss ";
这是要干啥?

((CXXXDlg*)GetParent())->m_test = "sss ";
是这个意思不?
[/Quote]


是的。


另外我想问一下 我多个按钮

比如2个按钮

我第一个按钮 关联变量but1,第2个按钮 关联变量but2,

我现在要实现2个按钮的OnLButtonDown和OnLButtonUp事件,怎么来实现?
hcyang 2010-07-01
  • 打赏
  • 举报
回复
CXXXDlg(this-> GetParent()).m_test = "sss ";
这是要干啥?

((CXXXDlg*)GetParent())->m_test = "sss ";
是这个意思不?
duangexin521 2010-07-01
  • 打赏
  • 举报
回复
我自己建了一个mybutton类,用来获取鼠标的左键按下释放事件


我需要将mybutton放置到一个dlg上
在鼠标左键按下时改变edt框的值,当鼠标松开后将edt框的值还原
edt的member variables是m_test
在mybutton类的OnLButtonDown事件中

CXXXDlg(this-> GetParent()).m_test = "sss ";

运行至这个的时候要提示错误


Eleven 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 duangexin521 的回复:]
请问怎么分别响应OnLButtonDown和OnLButtonUp?第一次学习MFC 很多都不明白。知道的老师请给个例子吧!谢谢了。
[/Quote]
你都添加了WM_LBUTTONDOWN和WM_LBUTTONUP消息,竟然不知道怎么区分???
jay0708 2010-07-01
  • 打赏
  • 举报
回复
这个问题,我建议你可以看一下孙鑫的VC++视频教程,里面非常的详细。不仅仅是这些。看来你是一个初学者,建议你看一下这个视频,比起在论坛里学这些要快很多。
duangexin521 2010-07-01
  • 打赏
  • 举报
回复
请问怎么分别响应OnLButtonDown和OnLButtonUp?第一次学习MFC 很多都不明白。知道的老师请给个例子吧!谢谢了。
Eleven 2010-07-01
  • 打赏
  • 举报
回复
GetDlgCtrlID()???
jay0708 2010-07-01
  • 打赏
  • 举报
回复
区分各自的ID,来区分两者

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧