滚动条系列第十章节答案

滚动条系列第十章节答案

作者:BlogUpdater |  时间:2020-04-14 |  浏览:130 |  评论已关闭 条评论

练习题1: 请解释为什么使用0x7FFF来代表无限高度?
答案:Reiko在评论中所说的答案是正确的。因为在Windows 95/98/ME上,0x7FFF是被支持的最大整数坐标值,所以这里使用到了这个值来代表无限高度。

练习题2: 请解释代码行:rcWindow.bottom += rcTemp.top。
答案:这一行代码可以使用如下的更加精确的格式:
rcWindow.bottom += (rcTemp.top – rcWindow.top) – (0 – rcWindow.top);

第一种形式计算的是非客户区从窗口顶端占据的大小。第二种形式也是计算非客户区从窗口顶端占据的大小,但是它考虑了菜单栏换行的因素。
区别在于,需要被AdjustWindowRectEx所调整的值不一样。但是因为第二种形式的公式中的两个rcWindow.top相互抵消了,所以就只剩下了rcWindow.top。

评论已关闭。