社区
界面
帖子详情
怎样继承一个button类来响应OnLButtonUp消息?
zhiheng
2004-05-06 10:37:11
在头文件声明了 virtual void OnLButtonUp(UINT nFlags, CPoint point);
在CPP文件写了
void CVtxButton::OnLButtonUp(UINT nFlags, CPoint point)
{
AfxMessageBox("OK");
}
点击按钮没反应
好像少了些什么
请大虾指点
--
...全文
255
11
打赏
收藏
怎样继承一个button类来响应OnLButtonUp消息?
在头文件声明了 virtual void OnLButtonUp(UINT nFlags, CPoint point); 在CPP文件写了 void CVtxButton::OnLButtonUp(UINT nFlags, CPoint point) { AfxMessageBox("OK"); } 点击按钮没反应 好像少了些什么 请大虾指点 --
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kevinlw03
2004-05-07
打赏
举报
回复
class CVtxButton 继承public Cbutton
重载OnLButtonUp()
void CVtxButton::OnLButtonUp(UINT nFlags, CPoint point)
{
AfxMessageBox("OK");
}
给你的按钮生成一个CVtxButton类型的控件变量,就可以了!
如果在添加变量的时候(有这个可能哟,我碰到过),选择类型只出现CButton 没有CVtxButton类型
你就把工程内的专门记录资源的那个文件del,在添加变量,这是会有提示
你可以重新把资源载入,再添加时就看到CVtxButton类型了。
zhangnanonnet
2004-05-07
打赏
举报
回复
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
你加了没有?
zhiheng
2004-05-07
打赏
举报
回复
IDC_BUTTON1是有的,不清楚为什么会找不到。
我又添加了个
#include "Resource.h" 那个错误就没了
最后代码如下:
BEGIN_MESSAGE_MAP(CVtxButton, CButton)
//{{AFX_MSG_MAP(CDemoDlg)
WM_LBUTTONUP(IDC_BUTTON1, OnLButtonUp) /*53行*/
//}}AFX_MSG_MAP /*54行*/
END_MESSAGE_MAP() /*55行*/
出现了如下错误
VtxButton.cpp(53) : error C2064: term does not evaluate to a function
VtxButton.cpp(55) : error C2059: syntax error : '{'
VtxButton.cpp(55) : error C2143: syntax error : missing ';' before '{'
VtxButton.cpp(55) : error C2447: missing function header (old-style formal list?)
VtxButton.cpp(55) : error C2143: syntax error : missing ';' before '}'
Error executing cl.exe.
Creating browse info file...
Demo.exe - 5 error(s), 0 warning(s)
我感觉好像是WM_LBUTTONUP(IDC_BUTTON1, OnLButtonUp)这种映射方式有点问题,求各位大虾给指点一下,不胜感激
zhiheng
2004-05-07
打赏
举报
回复
看起来只能这样做了
我的原意是作一个游戏手柄的按钮
让一个WM_LBUTTONUP和一个button对应起来
如果按楼上的做法
每个CVtxButton按钮都会执行同样的OnLButtonUp
按向上按钮和按向下按钮都执行一样的东东
游戏就没法玩了
不过仍感谢 kevinlw03(诚诚)
我设法得到当前得到focus的按钮id
这样在OnLButtonUp里加个switch就知道按的是那个按钮了
呵呵
也算凑合
谢谢各位回帖的兄弟
zhangnanonnet
2004-05-06
打赏
举报
回复
在消息映射中你少了
BEGIN_MESSAGE_MAP(CPhoneBookPage, CDialogResize)
//{{AFX_MSG_MAP(CPhoneBookPage)
WM_LBUTTONUP(IDC_BUTTON1, OnLButtonUp)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
Kudeet
2004-05-06
打赏
举报
回复
提示 error C2065: 'IDC_BUTTON1' : undeclared identifier
不知道是什么原因?????
IDC_BUTTON1没有定义
WM_LBUTTONUP(IDC_BUTTON1, OnLButtonUp)把IDC_BUTTON1改为具体按钮的ID号
zhiheng
2004-05-06
打赏
举报
回复
我试了一下
用ON_WM_LBUTTONUP()也行
只是还无法和具体按钮对应
zhiheng
2004-05-06
打赏
举报
回复
我按您说的改了
在新建类里的消息映射用
WM_LBUTTONUP(IDC_BUTTON1, OnLButtonUp)还是有错
提示 error C2065: 'IDC_BUTTON1' : undeclared identifier
不知道是什么原因?????
用ON_MESSAGE(WM_LBUTTONUP,OnLButtonUp) 好使
只是由这个类生成的按钮全都相应一个OnLButtonUp函数
达不到与具体按钮对应
Pipi0714
2004-05-06
打赏
举报
回复
1、对话框中定义CVtxButton类的变量,m_cButton;
2、然后重载对话框的WM_INIT...消息函数,
m_cButton.Subdlg...(IDC_BUTTON1); //把你的控件淤你的类建立影射关系
上面的步骤你做了么?
ygzdev
2004-05-06
打赏
举报
回复
virtual void OnLButtonUp(UINT nFlags, CPoint point);改为afx_msg void OnLButtonUp(UINT nFlags, CPoint point);试试
zhiheng
2004-05-06
打赏
举报
回复
多谢您的回复
我按您说的做了
可是出现了如下问题:
E:\课题资料\参考例程\button\不规则按钮\DemoDlg.cpp(50) : error C2064: term does not evaluate to a function
E:\课题资料\参考例程\button\不规则按钮\DemoDlg.cpp(52) : error C2059: syntax error : '{'
E:\课题资料\参考例程\button\不规则按钮\DemoDlg.cpp(52) : error C2143: syntax error : missing ';' before '{'
E:\课题资料\参考例程\button\不规则按钮\DemoDlg.cpp(52) : error C2447: missing function header (old-style formal list?)
E:\课题资料\参考例程\button\不规则按钮\DemoDlg.cpp(52) : error C2143: syntax error : missing ';' before '}'
Error executing cl.exe.
Creating browse info file...
Demo.exe - 5 error(s), 0 warning(s)
给按钮增加L
Button
Down和L
Button
Up
消息
响应
函数步骤及实现
首先,我们需要
继承
C
Button
类,创建
一个
新的类 CMy
Button
,并重载
OnL
Button
Down 和
OnL
Button
Up 函数。 步骤 2:添加
OnL
Button
Down 和
OnL
Button
Up 函数 在 CMy
Button
类中,我们需要添加
OnL
Button
Down 和 ...
MFC自绘
Button
类
1. **派生新的C
Button
类**:首先,我们需要创建
一个
新的C++类,比如叫做CMFCool
Button
,
继承
自C
Button
。这样我们就可以拥有C
Button
的所有功能,并且可以添加自定义的方法和成员变量。 2. **重写
消息
映射**:在新类...
MFC重载
Button
实现圆形按钮 椭圆按钮类
首先,你需要创建
一个
新的C
Button
派生类,例如CCircle
Button
或CEllipse
Button
,并声明
一个
成员变量来存储按钮的形状(圆形或椭圆形)。然后,在构造函数中设置这个形状变量。接下来,重写OnPaint()函数: ```cpp ...
MFC 鼠标按下与弹起事件
响应
这两个
消息
都是通过MFC的
消息
映射机制来处理的。 首先,我们需要在派生自CWnd或其子类(如C
Button
、CStatic、CDialog等)的类中添加
消息
映射条目。在类的头文件中,声明
消息
映射函数: ```cpp afx_msg void ...
解决 MFC 的 双击 和 单击 存在的 缺陷
MFC通过CWnd类的
OnL
Button
Down和
OnL
Button
Up
消息
来处理鼠标左键的按下和释放事件。而双击事件则是通过
OnL
Button
DblClk
消息
来处理。当用户快速连续点击两次时,系统首先会触发单击事件,然后如果在设定的时间间隔内...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章