在使用MFC的slider control时,对于其拖动的默认响应函数OnCustomdrawSlider,会响应有关draw的事件,包括非操作区的变换导致的界面重绘。
而有的时候我们希望只响应对slider的拖动事件,而不响应其他事件。如在制作自定义视频播放器的进度条时,我们希望鼠标在拖动slider时,不允许其他的线程或程序操作这个slider以免造成拖动失败。
看了其他网友有关“判断鼠标操作在控件上”的文章,觉得可以使用MFC的OnHScroll(或OnVScroll)消息响应,来进一步判断鼠标操作是否在控件上。
具体方法如下:
- 新加一个slider 控件,设置其相应响应函数;
- 在Dlg(或View)类中增加OnHscroll函数,函数内容如下:
void CxxxView::OnHScroll(UINT nSBCode, UINT nPos,