社区
界面
帖子详情
怎样继承一个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");
}
点击按钮没反应
好像少了些什么
请大虾指点
--
...全文
290
11
打赏
收藏
怎样继承一个button类来响应OnLButtonUp消息?
在头文件声明了 virtual void OnLButtonUp(UINT nFlags, CPoint point); 在CPP文件写了 void CVtxButton::OnLButtonUp(UINT nFlags, CPoint point) { AfxMessageBox("OK"); } 点击按钮没反应 好像少了些什么 请大虾指点 --
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
Button
按钮
响应
鼠标按下与弹起
消息
对话框上的按钮本身只能添加单击双击时间,不能
响应
鼠标按下与弹起
消息
,可以通过两种方法实现:
1.重载C
Button
类,将该类子类化
在工程中添加
一个
新类CMy
Button
,基类为C
Button
。
在对话框MyDlg中为IDC_
BUTTON
添加变量,在变量类型里选择CMy
Button
,变量名自定义,如m_my
Button
。添加函数OnDown与OnUp函数
响应
按钮按下与弹起
消息
在Class name中选择CMy
Button
,然后添加
CToolBar和SetTimer结合实现类似PhotoShop - pallet的延迟菜单输出效果
1) 自定义
一个
类从CToolBar
继承
2)
响应
该类的
OnL
Button
Down(UINT nFlags, CPoint point)
OnL
Button
Up(UINT nFlags, CPoint point)
消息
3) L
Button
Down 中处理 : a) 通过 GetToolBarCtrl().HitTest(&Pt); 得到单击的
button
的
在vc中自定义事件扩展控件功能
当MFC所提供的控件不能满足我们的要求时,我们需要为控件进行功能扩展,根据需求自定义控件的事件。 本文以
一个
扩展按钮的鼠标按下和鼠标松开的事件为例,其它控件事件扩展可遵照该例。提供源代码,在VC6.0中调试成功。 按钮也是
一个
窗口,
继承
自CWND,它其中封装了大量的
消息
,因此我们之需要
继承
C
Button
,然后添加我们需要的事件对控件进行扩展即可。 在开发过程中,只需要
utf-8 utf-16转换代码
源码链接: https://pan.quark.cn/s/a4b39357ea24 近期在Linux与Windows系统间进行字符传输时遇到了编码错乱问题,因此对字符编码进行了深入研究。 查阅了网络中关于UTF-8/UTF-16转换的相关文献,发现仅对0x10000以下的Unicode编码实施了转换;对其源代码进行了修订与完善,确保能够完成所有UTF-8/UTF-16的转换工作,现将其分享给各位。
易语言源码取汉字笔画模块
易语言源码取汉字笔画模块
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章