组件制作之四(定制外观)[2]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 linzhengqun 的 blog

首先,该memocustommemo继承,它有这样外观:属于平面的,边框是可以设置颜色的线,对应的颜色变量为fedgecolor,另外,离边框以内的两个象素处,还有另一个框,当鼠标进入memo时,这个框会显示,当鼠标离开时,为个框消失,同样也可以设置颜色,对应变量为fentercolor

那么鼠标进入和离开怎么判断呢,这里memo将截获两个delphi的内部消息:

//下面两个获得delphi的内部消息,鼠标进入和离开时发生

     procedure cmmouseenter (var message: tmessage); message cm_mouseenter;

     procedure cmmouseleave (var message: tmessage); message cm_mouseleave;

其实父类已经截获了这两个消息,并作了相应处理,所以tcoolmemo中的消息处理函数要

inherited;再作自己的处理。这里又用到了一个变量

mouseinboolean;//标识鼠标是否进入组件

 

接下来tcoolmemo还要截获两个消息:

procedure wmpaint (var message: tmessage); message wm_paint;

procedure wmnccalcsize (var message: twmnccalcsize); message wm_nccalcsize;

第一个很熟悉,当需要重画时,触发该消息,

本文关键:组件制作之四(定制外观)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top