button的问题!!! Button控件在ClassWizard里默认只有单击和双击事件 我想给BUTTON添加按下和抬起事件请问是如何添加的啊!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 子类化一个按钮类:#define WUSER_LBUTTON_DOWN WM_USER+1#define WUSER_LBUTTON_UP WM_USER+2CMsgButton :public CButton{.................... //{{AFX_VIRTUAL(CMsgButton) public: virtual BOOL PreTranslateMessage(MSG* pMsg); //}}AFX_VIRTUAL....................}///////////////////////////////BOOL CMsgButton::PreTranslateMessage(MSG* pMsg){ CWnd* pParent = GetParent(); if(pMsg->message == WM_LBUTTONDOWN) { ::PostMessage(pParent->GetSafeHwnd(),WUSER_LBUTTON_DOWN,0,0); } else if(pMsg->message == WM_LBUTTONUP) { ::PostMessage(pParent->GetSafeHwnd(),WUSER_LBUTTON_UP,0,0); } return CButton::PreTranslateMessage(pMsg);}/////////////////////////////////////////////////////////////在对话框类中,为ID为IDC_BUTTONX的控件绑定一个CMsgButton类的成员变量然后添加自定义消息响应函数到对话框.H,和.CPP文件在H文件中://{{AFX_MSG(CTestClass) virtual BOOL OnInitDialog(); .................... //}}AFX_MSG afx_msg void OnButtonLDown(WPARAM,LPARAM); DECLARE_MESSAGE_MAP()在CPP文件中:BEGIN_MESSAGE_MAP(CTestClass, CDialog) //{{AFX_MSG_MAP(CTestClass) 。 //}}AFX_MSG_MAP ON_MESSAGE(WUSER_LBUTTON_DOWN,OnButtonLDown)END_MESSAGE_MAP()函数实现void CTestClass::OnButtonLDown(WPARAM,LPARAM){ MessageBox(_T("lbuttondown"));} 禁止向文本框内粘贴 请问如何在TreeView中加入Checkbox? 高手快来救命!关于FAT32文件系统根目录的问题 如何控制在标题栏上输出的位置? 如何在listctrl中改变行的颜色? 高分求音视频聊天程序原代码(100分立即给) 一个关于类型转换的问题 请问:在非MFC环境下,如何调用ie内核组件创建一个Web浏览器窗口?(急) 帮我看一个程序,我写的一个微秒级延时子程序,需要多线程吗? 如何给多个文本框赋值一个数组?? 我的工具栏的提示有时候显示不出来,为什么,怎么办? 一般线程不正常退出是什么原因?
#define WUSER_LBUTTON_DOWN WM_USER+1
#define WUSER_LBUTTON_UP WM_USER+2CMsgButton :public CButton
{
....................
//{{AFX_VIRTUAL(CMsgButton)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
//}}AFX_VIRTUAL
....................
}
///////////////////////////////
BOOL CMsgButton::PreTranslateMessage(MSG* pMsg)
{
CWnd* pParent = GetParent();
if(pMsg->message == WM_LBUTTONDOWN)
{
::PostMessage(pParent->GetSafeHwnd(),WUSER_LBUTTON_DOWN,0,0);
}
else if(pMsg->message == WM_LBUTTONUP)
{
::PostMessage(pParent->GetSafeHwnd(),WUSER_LBUTTON_UP,0,0);
} return CButton::PreTranslateMessage(pMsg);
}
/////////////////////////////////////////////////////////////
在对话框类中,为ID为IDC_BUTTONX的控件绑定一个CMsgButton类的成员变量
然后添加自定义消息响应函数到对话框.H,和.CPP文件
在H文件中:
//{{AFX_MSG(CTestClass)
virtual BOOL OnInitDialog();
....................
//}}AFX_MSG
afx_msg void OnButtonLDown(WPARAM,LPARAM);
DECLARE_MESSAGE_MAP()
在CPP文件中:
BEGIN_MESSAGE_MAP(CTestClass, CDialog)
//{{AFX_MSG_MAP(CTestClass)
。
//}}AFX_MSG_MAP
ON_MESSAGE(WUSER_LBUTTON_DOWN,OnButtonLDown)
END_MESSAGE_MAP()函数实现
void CTestClass::OnButtonLDown(WPARAM,LPARAM)
{
MessageBox(_T("lbuttondown"));
}