⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 158.htm

📁 好书啊!很好哦
💻 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&nbspTMEMO                                 <br>
      <b> 类 别</b>:用户界面                                           
      <hr size="1" width="100%">
      <span class="content"><br>&nbsp;&nbsp;&nbsp;&nbsp;为了在TMemo组件表面画图,我们应当创造TMemo的子类,并重载它的drawing方法.具体做法如下:<br><br>type<br>&nbsp;&nbsp;TMyMemo = class(TMemo)<br>&nbsp;&nbsp;protected<br>&nbsp;&nbsp;&nbsp;&nbsp;procedure WMPaint(var Message: TWMPaint); message WM_PAINT;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;插入到程序的实现部分:<br><br>procedure TMyMemo.WMPaint(var Message: TWMPaint); <br>var<br>&nbsp;&nbsp;MCanvas: TControlCanvas;<br>&nbsp;&nbsp;DrawBounds : TRect; <br>Begin<br>&nbsp;&nbsp;inherited;<br>&nbsp;&nbsp;MCanvas:=TControlCanvas.Create;<br>&nbsp;&nbsp;DrawBounds := ClientRect;  // 生成临时TRect类型记录<br>&nbsp;&nbsp;Try<br>&nbsp;&nbsp;&nbsp;MCanvas.Control:=Self;<br>&nbsp;&nbsp;&nbsp;With MCanvas do<br>&nbsp;&nbsp;&nbsp;Begin<br>&nbsp;&nbsp;&nbsp;&nbsp;Brush.Color := clBtnFace;<br>&nbsp;&nbsp;&nbsp;&nbsp;FrameRect( DrawBounds );<br>&nbsp;&nbsp;&nbsp;&nbsp;InflateRect( DrawBounds, -1, -1);<br>&nbsp;&nbsp;&nbsp;&nbsp;FrameRect( DrawBounds );<br>&nbsp;&nbsp;&nbsp;&nbsp;FillRect ( DrawBounds );<br>&nbsp;&nbsp;&nbsp;&nbsp;MoveTo ( 33, 0 );<br>&nbsp;&nbsp;&nbsp;&nbsp;Brush.Color := clWhite;<br>&nbsp;&nbsp;&nbsp;&nbsp;LineTo ( 33, ClientHeight );<br>&nbsp;&nbsp;&nbsp;&nbsp;PaintImages;<br>&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;MCanvas.Free;<br>&nbsp;&nbsp;End; <br>end;<br>&nbsp;&nbsp;&nbsp;&nbsp;这个PaintImages过程在Memo的画布上画图象。 <br><br>procedure TMyMemo.PaintImages; <br>var<br>&nbsp;&nbsp;MCanvas: TControlCanvas;<br>&nbsp;&nbsp;DrawBounds : TRect;<br>&nbsp;&nbsp;i, j : Integer;<br>&nbsp;&nbsp;OriginalRegion : HRGN;<br>&nbsp;&nbsp;ControlDC : HDC; <br>begin<br>&nbsp;&nbsp;MCanvas:=TControlCanvas.Create;<br>&nbsp;&nbsp;DrawBounds := ClientRect;  // 生成临时TRect类型记录<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;MCanvas.Control:=Self;<br>&nbsp;&nbsp;&nbsp;ControlDC := GetDC ( Handle );<br>&nbsp;&nbsp;&nbsp;MCanvas.Draw(0, 1, Application.Icon);<br>&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;MCanvas.Free;<br>&nbsp;&nbsp;end; <br>end;<br>&nbsp;&nbsp;现在你有了你自己的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 + -