windows 程序设计第五版的一个书上的问题??

owlbomber 2003-08-27 11:13:57
书上第106页

iPaintBeg=max(0,iVertPos+ps.rcPaint.top/cyChar);
iPaintEnd=min(NUMLINES-1,iVertPos+ps.rcPaint.bottom/cyChar);

for(i=iPaintBeg;i<=iPaintEnd;i++)

{
x=cxChar*(1-iHorzPos);
y=cyChar*(i-iVertPos);
.
.
.

各位大虾,能不能绐一个较为详细解释,因为俺比较笨^!^


...全文
114 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kof99 2003-08-30
  • 打赏
  • 举报
回复
max和min是取最大最小数,一般如果是小写就是库函数,大写是宏. 其实现很简单,你一看就明白了. 这些都是在标准库中定义的, 如果你还没有这样的手册,应该买一本参考.
如:
宏 MAX(a,b) ((a) > (b)? (a) : (b))
函数 min(a,b)
{
if(a<b) return a;
else return b;
}
iPaintBeg=max(0,iVertPos+ps.rcPaint.top/cyChar);
先只考虑非0情况
i=iPaintBeg;
那么 i-iVertPos 就是 ps.rcPaint.top/cyChar);
y=cyChar*(i-iVertPos); 就剩下 ps.rcPaint.top
现在 只要理解ps.rcPaint.top就是无效矩形区的上方坐标 不就明白了吗?



owlbomber 2003-08-29
  • 打赏
  • 举报
回复
我就是不懂这一句呀!
还有上面的MAX,MIN函数是那来的?我知它的用处
kof99 2003-08-29
  • 打赏
  • 举报
回复
这句在书 p97 的上个例子的的 y = cyChar*(i - iVscrollPos);一样道理
owlbomber 2003-08-28
  • 打赏
  • 举报
回复
对于这一句
y=cyChar*(i-iVertPos);
那位大虾,能绐一个更为详细的说法吗?
我一定绐40分!!!!
owlbomber 2003-08-27
  • 打赏
  • 举报
回复
iPaintBeg=max(0,iVertPos+ps.rcPaint.top/cyChar);
iPaintEnd=min(NUMLINES-1,iVertPos+ps.rcPaint.bottom/cyChar);
请问这二个MAX,MIN函数是那来的。


x=cxChar*(1-iHorzPos);
y=cyChar*(i-iVertPos);
这两个一减计算出来是什么?


netsys2 2003-08-27
  • 打赏
  • 举报
回复
这是一个画东西的程序,你那一句看不懂?


iPaintBeg=max(0,iVertPos+ps.rcPaint.top/cyChar);//计算起始点
iPaintEnd=min(NUMLINES-1,iVertPos+ps.rcPaint.bottom/cyChar);//计算结束点

for(i=iPaintBeg;i<=iPaintEnd;i++)

{
x=cxChar*(1-iHorzPos);//计算坐标
y=cyChar*(i-iVertPos);
.
.
.
owlbomber 2003-08-27
  • 打赏
  • 举报
回复
up
owlbomber 2003-08-27
  • 打赏
  • 举报
回复
koff99非常感谢你的帮助,我决定绐你20分。希望大家能多绐我一些的回复。
kof99 2003-08-27
  • 打赏
  • 举报
回复
iHorzPos 是移动横向滚动条后的位置. 用1-,就是向右偏移1,主要是使得显示的时候不会贴在边上. x是显示文字的起始横坐标
iVertPos 是纵向滚动条位置,i是sysmetrics[]的索引位置.相减就是应该显示的纵坐标位置

你可以试试去掉 1-,和i-,然后看看有什么效果.
netsys2 2003-08-27
  • 打赏
  • 举报
回复
MAX,MIN:数学函数,取两个数中最大、小值。

x=cxChar*(1-iHorzPos);
y=cyChar*(i-iVertPos);
这两个一减计算出来是什么?
看变量名好象是坐标的XY值,具体是什么不知道,因为没看你那本书

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧