📄 158.htm
字号:
<!-- saved from url=(0022)http://internet.e-mail -->
<html>
<head>
<title>在TMemo组件上画图 </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="inc.css">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="195434" alink="195434">
<table width="621" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="621"><a href="http://www.CoDelphi.com"><img src="images/logo.gif" border="0" width="153" height="60"><img src="images/bigbanner.gif" border="0" width="468" height="60"></a></td>
</tr>
</table><br>
<br>
<table width="621" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td align="left" valign="top" class="font9" height="155">
<div align="center" class="btitle">在TMemo组件上画图 <br>
<br>
</div>
<div align="center"><strong>CoDelphi.com </strong></div>
<b><br>
摘 要</b>:使用WM_PAINT消息在TMemo组件上画图 <br>
<b> 关键字</b>:WM_PAINT TMEMO <br>
<b> 类 别</b>:用户界面
<hr size="1" width="100%">
<span class="content"><br> 为了在TMemo组件表面画图,我们应当创造TMemo的子类,并重载它的drawing方法.具体做法如下:<br><br>type<br> TMyMemo = class(TMemo)<br> protected<br> procedure WMPaint(var Message: TWMPaint); message WM_PAINT;<br> end;<br> 插入到程序的实现部分:<br><br>procedure TMyMemo.WMPaint(var Message: TWMPaint); <br>var<br> MCanvas: TControlCanvas;<br> DrawBounds : TRect; <br>Begin<br> inherited;<br> MCanvas:=TControlCanvas.Create;<br> DrawBounds := ClientRect; // 生成临时TRect类型记录<br> Try<br> MCanvas.Control:=Self;<br> With MCanvas do<br> Begin<br> Brush.Color := clBtnFace;<br> FrameRect( DrawBounds );<br> InflateRect( DrawBounds, -1, -1);<br> FrameRect( DrawBounds );<br> FillRect ( DrawBounds );<br> MoveTo ( 33, 0 );<br> Brush.Color := clWhite;<br> LineTo ( 33, ClientHeight );<br> PaintImages;<br> end;<br> finally<br> MCanvas.Free;<br> End; <br>end;<br> 这个PaintImages过程在Memo的画布上画图象。 <br><br>procedure TMyMemo.PaintImages; <br>var<br> MCanvas: TControlCanvas;<br> DrawBounds : TRect;<br> i, j : Integer;<br> OriginalRegion : HRGN;<br> ControlDC : HDC; <br>begin<br> MCanvas:=TControlCanvas.Create;<br> DrawBounds := ClientRect; // 生成临时TRect类型记录<br> try<br> MCanvas.Control:=Self;<br> ControlDC := GetDC ( Handle );<br> MCanvas.Draw(0, 1, Application.Icon);<br> finally<br> MCanvas.Free;<br> end; <br>end;<br> 现在你有了你自己的drawing memo类。</span>
<table border="0" cellspacing="0" cellpadding="1" class="font9" align="center" width="100%">
<tr align="left" valign="middle" bgcolor="195434">
<td height="1"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#C9C9C6" height="2"></td>
</tr>
</table>
<div align="center"><br>
中文开发在线<a href="http://www.codelphi.com" target="_blank">www.codelphi.com</a>授权使用。
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -