导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

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

duangexin521 2010-07-01 02:57:01
CMyButton派生自CButton,在CMyButton中重载OnLButtonDown和OnLButtonUp.
在对话框上创建两个CBUTTON控键,分别给两个CButton空间增加Control关联变量,
请教:怎样区分当前按下的是哪个按钮?
...全文
195 点赞 收藏 15
写回复
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,来区分两者
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

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