设为首页 加入收藏

TOP

输出文字(三十五)
2010-12-30 21:10:02 来源: 作者: 【 】 浏览:24201
Tags:输出 文字
理程式完成更新後立即退出,Windows将控制传回给程式中UpdateWindow呼叫之後的叙述。

您可能注意到,UpdateWindow与WinMain中用来产生第一个WM_PAINT讯息的函式相同。最初建立视窗时,整个显示区域内容变为无效,UpdateWindow指示视窗讯息处理程式绘制显示区域。

建立更好的滚动
 

SYSMETS2动作良好,但它只是模仿其他程式中的卷动列,并且效率很低。很快我将示范一个新的版本,改进它的不足。也许最有趣的是这个新版本不使用目前所讨论的四个卷动列函式。相反,它将使用Win32 API中才有的新函式。

卷动列资讯函式
 

卷动列文件(在/Platform SDK/User Interface Services/Controls/Scroll Bars中)指出SetScrollRange、SetScrollPos、GetScrollRange和GetScrollPos函式是「过时的」,但这并不完全正确。这些函式在Windows 1.0中就出现了,在Win32 API中升级以处理32位元参数。它们仍然具有良好的功能。而且,它们不与Windows程式设计中新函式相冲突,这就是我在此书中仍使用它们的原因。

Win32 API介绍的两个卷动列函式称作SetScrollInfo和GetScrollInfo。这些函式可以完成以前函式的全部功能,并增加了两个新特性。

第一个功能涉及卷动方块的大小。您可能注意到,卷动方块大小在SYSMETS2程式中是固定的。然而,在您可能使用到的一些Windows应用程式中,卷动方块大小与在视窗中显示的文件大小成比例。显示的大小称作「页面大小」。演算法为:


 

可以使用SetScrollInfo来设置页面大小(从而设置了卷动方块的大小),如将要看到的SYSMETS3程式所示。

GetScrollInfo函式增加了第二个重要的功能,或者说它改进了目前API的不足。假设您要使用65,536或更大单位的范围,这在16位元Windows中是不可能的。当然在Win32中,函式被定义为可接受32位元参数,因此是没有问题的。(记住如果使用这样大的范

首页 上一页 32 33 34 35 36 37 38 下一页 尾页 35/44/44
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇图形基础 下一篇视窗和讯息

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: