您的位置:首页 > 其它

窗口滚动条与滚动条控件的区别

2013-04-09 11:08 281 查看
先前我写了一篇关于窗口滚动条的博客,链接是 http://blog.csdn.net/zhongjling/article/details/7796932
对于滚动条控件,其实也用的很多的。链接是 http://www.jizhuomi.com/software/191.html。
窗口滚动条与滚动条控件二者的使用步骤当然有所不同,但是注意,二者响应滑条滚动时,都是响应的 WM_HSCROLL消息,使用OnHScroll(UINT
nSBCode, UINT nPos, CScrollBar* pScrollBar) 作为消息响应函数的。那么如果一个窗口里,既有窗口滑条,又有控件滑条,系统如何区分用户到底在操作哪一类滑条?(WM_VSCROLL 类似,不叙)

经过查找,发现以下解释是合理的:

区别在于OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 里的参数pScrollBar。

If the scroll message came from a scroll-bar control, contains a pointer to the control.
If the user clicked a window's scroll bar, this parameter is NULL. The pointer may be temporary and should not be stored
for later use.

滚动条控件(CScrollBar)发送WM_HSCROLL消息时pScrollBar是指向控件的指针。

如果是窗口的滚动条,pScrollBar就是NULL。经测试,确实如此!

参见 http://emuch.net/html/201011/2526841.html
另外注意一点:

WM_HSCROLL
Releasecapture响应是不一样的,前者是立刻马上、后者是释放鼠标后见效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: