电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> delphi技术>>API与VCL:

API与VCL

来源:www.cncfan.com | 2006-3-28 | (有3479人读过)

Microsoft的MFC大量的封装地Windows API,VCL也不例外。VCL功能的实现大部分都离不开Windows API,要么是直接调用,要么是经过简单的封装再调用。如TControl的Repaint的实现(Control单元中):

procedure TControl.Repaint;

var

DC: HDC;

begin

if (Visible or (csDesigning in ComponentState) and not (

csNoDesignVisible in ControlStyle)) and (Parent <> nil) and

Parent.HandleAllocated then

if csOpaque in ControlStyle then

begin

//直接调用user32.Dll的GetDC

DC := GetDC(Parent.Handle);

Try

//直接调用gdi32.Dll的IntersectClipRect

IntersectClipRect(DC, Left, Top, Left + Width, Top +

Height);

// Parent.PaintControls调用大量的API

Parent.PaintControls(DC, Self);

Finally

// 直接调用user32.Dll的ReleaseDC

ReleaseDC(Parent.Handle, DC);

end;

end else

begin

//以下两个经过封装调用

Invalidate;

Update;

end;

end;

可见VCL中处处都有API,我们从另外一个面来理解VCL就是:VCL就是大量封装API函数的类库,这样的结果就是使我们更容易使用API,不必关心那些烦人的API参数。

delphi技术热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2022 电脑爱好者 版权所有 备案号:鲁ICP备09059398号