Archive for » 九月 16th, 2006«

前两天看的内容先不做了,有复习的时候看到有价值的再放上来,今天看到一个有意思的,先弄上来省得以后翻书忘了~~我想读书笔记的作用就在于此吧,把自己认为有用的记录下来,以后就不用常翻书了,翻一本书是一本实在痛苦的事情……

[quote]
si.cbSize = sizeof( SCROLLINFO );
si.cbMask = SIF_RANGE | SIF_PAGE;
si.nMin = 0;
si.nMax = NUMLINES – 1;
si.nPage = cyClient / cyChar;

SetScrollInfo( hwnd, SB_VERT, &si, TURE );
[/quote]

这样做以后Windows会把最大的滚动条位置设置为si.nMax – si.nPage + 1,而不是nMax,这就和直接用SetScrollRange不同了,用这个函数的最基本用法就是:

[quote]
SetScrollRange( hwnd, SB_VERT, 0, NUMLINES – 1, FALSE );
SetScrollPos( hwnd, SB_VERT, iVScrollPos, TRUE );
[/quote]

这样做会引起一个问题,就是当滚动条的位置是0的时候,第一行信息显示在客户区的顶部(这当然是没问题的,也符合我们平时的使用),可是如果当滚动条的位置是NUMLINES – 1时,最后一行显示在客户区的顶部,并且看不见其他行,这就和平时我们用的有点区别的了,我们平时使用时是最后一行显示在最后一行,并且此时滚动条已经到底了,而如果要用SDK实现这个功能就要改一下

[quote]
iVScrollMax = max( 0, NUMLINES – cyClinet / cyChar );
SetScrollRange( hwnd, SB_VERT, 0, iVScrollMax, TRUE );
[/quote]

这实在是有一点麻烦,但是SetScrollRange用MSDN里面的话是provides a backward compability,所以两种方法还是要掌握的,当然在XP下SetScrollInfo优先~~[lol]

Category: 笔记  3 Comments

今早起来很郁闷的发现QQ上不去了,提示说需要重新激活~~但是给我的http://im.qq.com/jh这个网站一直上不去,提示"找不到服务器",很纳闷的在GOOGLE上搜了一下,发现关于这方面的文章还真不少….- -'后来好容易找到另一个电信的激活网址:http://activate.qq.com,终于把QQ激活成功了,居然提示是因为可能密码被改过了然后XXXX的~~莫名……难道我的卡巴痿了?!

Category: 日记  6 Comments