电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 邮件系统
强制和防止窗口重画_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
这个例子告诉你如何强制窗口的一部分重画。有时这是必须的,特别是当你试验自己重画控件的技术,或者已经使用了LockWindowUpdate
这个API函数以阻止控件重画时(参见“防止一个窗口重画”)。

  新建一个项目,添加一个module,然后粘贴下列代码:

PrivateTypeRECT
  LeftAsLong
  TopAsLong
  RightAsLong
  BottomAsLong
EndType

PrivateTypePOINTAPI
  XAsLong
  YAsLong
EndType

PrivateDeclareFunctionGetWindowRectLib"user32"(ByValhWndAsLong,lpRectAsRECT)AsLong
PrivateDeclareFunctionGetClientRectLib"user32"(ByValhWndAsLong,lpRectAsRECT)AsLong
PrivateDeclareFunctionInvalidateRectLib"user32"(ByValhWndAsLong,lpRectAsRECT,ByValbEraseAsLong)AsLong
PrivateDeclareFunctionScreenToClientLib"user32"(ByValhWndAsLong,lpPointAsPOINTAPI)AsLong

PublicSubRepaintWindow(ByRefobjThisAsObject,OptionalByValbClientAreaOnlyAsBoolean=True)
 DimtRAsRECT
 DimtPAsPOINTAPI
 If(bClientAreaOnly)Then
  GetClientRectobjThis.hWnd,tR
 Else
  GetWindowRectobjThis.hWnd,tR
  tP.X=tR.Left:tP.Y=tR.Top
  ScreenToClientobjThis.hWnd,tP
  tR.Left=tP.X:tR.Top=tP.Y
  tP.X=tR.Right:tP.Y=tR.Bottom
  ScreenToClientobjThis.hWnd,tP
  tR.Right=tP.X:tR.Bottom=tP.Y
 EndIf
 InvalidateRectobjThis.hWnd,tR,1 
EndSub

  为了试试重画,在窗体上添加一个ListBox和一个Command。把ListBox拉得大一些,这样效果比较明显。再加入下列代码:

PrivateSubCommand1_Click()
 RepaintWindowList1
EndSub

PrivateSubForm_Load()
 DimiAsLong
 Fori=1To200
  List1.AddItem"TestItem"&i
 Nexti
EndSub

  当你单击Command按钮,ListBox的客户区将全部重画。对于ListBox,这种效果并不十分明显地显示,但这段代码放在这里主要目的,是让你在
遇上有东西不能恰当地重画它自己时可以有办法解决。

——————————————————————————————————————————————

防止窗口重画 WXJ_Lake编译

  这则代码演示了如何防止窗口的一部分重画。当你要往ListBox或ListView这样的控件里添加许多项时,暂缓重画可以相当地提高处理速度。
在我的系统上,往一个ListBox中加10000项比原来提速30

  新建一个项目,添加一个ListBox、一个Command和一个CheckBox。把CheckBox的Caption设为"&LockUpdate",Command的Caption设为"&Load"。
然后,把下列代码粘贴到窗体中:

PrivateDeclareFunctionLockWindowUpdateLib"user32"(ByValhwndLockAsLong)AsLong
PrivateDeclareFunctiontimeGetTimeLib"winmm.dll"()AsLong

PrivateSubCommand1_Click()
 DimiAsLong
 DimlTImeAsLong

 lTIme=timeGetTime()

 If(Check1.Value=Checked)Then
  LockWindowUpdateList1.hWnd
 EndIf

 List1.Clear
 Fori=1To10000
  List1.AddItem"Test"&i
 Nexti

 If(Check1.Value=Checked)Then
  LockWindowUpdate0
  List1.Refresh
 EndIf

 MsgBox"Time:"&timeGetTime-lTIme

EndSub

  当你单击Command按钮,代码将往ListBox中添加10000项。如果"LockUpdate"的复选框被选中,Windows将在往ListBox中添加项时防止它的重画。操作结束后,会弹出一个对话框报告运行时间。->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·用photoshop蒙板给灰暗的照片调色_photoshop教程
·彩虹初现 photoshop设计奇幻风格的壁纸_photoshop教程
·photoshop蒙板全攻略_photoshop教程
·教你用photoshop绘制诱人的哈密瓜_photoshop教程
·photoshop婚纱照片处理及美化_photoshop教程
·ubuntu下安装php5+pdo_php教程
·photoshop古铜色效果制作方法_photoshop教程
·photoshop可选色与蒙板打造偏色人像艺术特效_photoshop教程
·photoshop制作网站流程图解揭密_photoshop教程
·photoshop绘制矢量风格美女插画_photoshop教程

最新文章
·分析邮件服务器发送海外不成功的原因
·尴尬的被告:谁为电子邮件安全买单
·专家浅析海外邮件收发不成功的原因
·深度剖析:中小网络公司经营之谜局
·企业是否需要企业邮局 有什么好处?
·重新审视:从道德视角看邮件泄露案
·走进反垃圾邮件研究 透视最新技术动向
·如何预防和减少“垃圾邮件”的到来
·华南双线IDC能否突破南北互联瓶颈?
·IDC邮件安全网关方案提高带宽效率


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号