积极答复者
OnLButtonDown获得的point的值无法传出本函数

问题
-
我建了一个类CSkinBtn是基于CButton的,在这个类中,我添加了成员变量m_nCurpos,在构造函数中初始化为0, 添加了单击响应事件函数如下:
void CSkinBtn::OnLButtonDown(UINT nFlags, CPoint point)
{
CRect rect;
GetClientRect(&rect);if (rect.PtInRect(point))
{
m_nCurPos = point.x;
m_strdlg.Format(" %d, %d ", m_nCurPos, point.y);
AfxMessageBox(m_strdlg); //暂时显示一下获得的位置(1)
}
Invalidate();
CButton::OnLButtonDown(nFlags, point);
}然后,我在CDlg的对话框中添加了几个按钮(例button1),style为owner draw,然后,在该对话框类的OnInitdialog中对各个按钮的关联变量进行初始化,是调用CSkinBtn中的函数。在button1的响应函数当中,我添加了如下代码:
OnButton1()
m_nCurPos = m_skinbtn.m_nCurPos;
m_strdlg.Format(" current position : %ld ", m_nCurPos);
AfxMessageBox(m_strdlg); //第二个(2)目的就是要获得点击的位置。
结果是:我点击按钮1的不同位置,在(1)中显示出不同的值,这些值是正确的,但是(2)的对话框却弹不出,注释掉(1)的AfxMessageBox,弹出了(2)但是,显示的值都是初始化值0,一直不变。对(1)、(2)AfxMessageBox,都注释掉,断点查看,执行完OnLButtonDown后,执行了OnButton1.
请问,这是什么缘故?是不是由于button自绘引起?还是我哪里错了,我该怎么去解决?
先谢谢了。