看了很多帖子,都说要重载,可是我重载了CMybutton,也添加了消息映射,还是不知道怎么用,因为不知道怎么和我对话框理的按钮关联起来,
希望哪位好人告诉我具体实现方法,最好有例子,谢谢了
希望哪位好人告诉我具体实现方法,最好有例子,谢谢了
解决方案 »
- 读取资源的问题(资源的ID以字符串形式存放)
- view的问题
- 求救,为什么我的程序放在没有vc的机器上就不好用了,报debug assert错,winocc 345行
- VC.NET使用问题.使用VC.NET的兄弟请进
- 如何改变CEdit中显示的字体大小并使其上下方向居中?
- 一个关于构造函数的非常、非常、非常简单的问题:)
- 紧急求救,能给个三原色图形源代码吗?
- 如何自己做按钮,控制PowerPoint的翻页
- VC对".dbf"表中标记删除的记录如何彻底删除?
- http://www.vckbase.com是怎么回事,为啥访问不了,都好多天了
- 求边缘检测后消噪、断边连接VC代码
- 为什么我的vc程序调试能通过,而直接运行就出错
然后你对话框上的按钮就用你的BUTTON就行了
#define BN_LBUTTONDOWN 10 //按钮按下
#define BN_LBUTTONUP 11 //弹起#define ON_BN_LBUTTONDOWN(id, memberFxn) ON_CONTROL(BN_LBUTTONDOWN,id, memberFxn) //消息处理宏
#define ON_BN_LBUTTONUP(id, memberFxn) ON_CONTROL(BN_LBUTTONUP,id, memberFxn) //消息处理宏
//鼠标按下时的消息
void CPushButton::OnLButtonDown(UINT nFlags, CPoint point)
{
HWND hwParent = GetParent()->m_hWnd;
UINT uID = GetDlgCtrlID();
::SendMessage(hwParent,WM_COMMAND,MAKEWPARAM(uID,BN_LBUTTONDOWN), (LPARAM)m_hWnd); //发送给父窗口 CButton::OnLButtonDown(nFlags, point);
}
//父窗口
BEGIN_MESSAGE_MAP(CControlDlg, CDialog) //加入消息处理
ON_BN_LBUTTONDOWN(IDC_BUTTON_DOWN, &CControlDlg::OnBnDownButtonDown)
ON_BN_LBUTTONUP(IDC_BUTTON_DOWN, &CControlDlg::OnBnUpButtonDown)
END_MESSAGE_MAP()
PreTranslateMessage函数中,在TODO后面加入下代码:
if(pMsg->hwnd == YourBtnWnd && pMsg->message == WM_LBUTTONDOWN)
{
//你可以写你的鼠标左键向下的消息响应了
return 1;
}
直接在对话框里处理按钮的WM_LBUTTONDOWN消息就可以了呀!
LZ是有其他的想法吗?