读书人

MFC中OnLButtonDown(.)调用解决办法

发布时间: 2012-06-29 15:48:46 作者: rapoo

MFC中OnLButtonDown(...)调用
void CStreamWnd::OnLButtonDown(UINT nFlags, CPoint point)
{

// TODO: Add your message handler code here and/or call default

CDialog::OnLButtonDown(nFlags, point);
.......
}
我想在屏幕这个区域(385, 269, 385+305, 269+230)调用OnLButtonDown函数,请问参数改怎么写?

[解决办法]
判断鼠标的位置,转换为客户区坐标
[解决办法]
根据point判断是否在这个区域(385, 269, 385+305, 269+230)就行
[解决办法]
CRect::PtInRect()
[解决办法]
不点击就用OnMouseMove 鼠标移动到区域内面了就触发事件
不过之前的工作是保证鼠标坐标的转换。
建议跟踪鼠标坐标值,然后转换。

探讨

OnMouseMove 判断是否在指定区域内

[解决办法]
屏幕这个区域

ClientToScreen判断...
[解决办法]
ClientToScreen

CRect::PtInRect()

如果要自动调用,就写线程或者定时器检测。


真正的自动调用,是重绘cbutton类,然后在类里面的onleftbuttondown函数里面做这个检查操作,还要给重载后的cbutton类一个回调的函数指针。这样类里面的onleftbuttondown检测到了,通知你,多好。

你明白了吗

读书人网 >VC/MFC

热点推荐