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

📄 chap03.htm

📁 经典的C入门教程,想学习VC的朋友们可以看一下
💻 HTM
字号:
<html>

<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
<meta NAME="Template" CONTENT="C:\MSOffice\Template\jjhou.dot">
<title>具体而微的绘图程式-关於滑鼠事件(Mouse Event)</title>
<link rel="stylesheet" href="../../../include/style.css">
</head>

<body>
<font SIZE="2">

<p><small><a href="../../../index.htm">首页</a> &gt;&gt; <a href="../../program.htm">程序设计</a> 
  &gt;&gt; <a href="../cbuilder.htm">C++ Builder</a>&nbsp; &gt;&gt;&nbsp; </small>具体而微的绘图程式&middot;<font color="#000000" SIZE="2">关於滑鼠事件(</font><font color="#000000">Mouse 
  Event<font SIZE="2">)</font></font></p>

<p align="left"><!--webbot bot="ImageMap" rectangle="(40,1) (71, 23)  chap31.htm" rectangle="(4,1) (36, 23)  ../ch2/chap28.htm" src="../ch1/NextBack.gif" width="72" height="24" alt="NextBack.gif (743字节)" border="0" startspan --><MAP NAME="FrontPageMap"><AREA SHAPE="RECT" COORDS="40, 1, 71, 23" HREF="chap31.htm"><AREA SHAPE="RECT" COORDS="4, 1, 36, 23" HREF="../ch2/chap28.htm"></MAP><a href="../../../_vti_bin/shtml.exe/program/C++/ch3/chap03.htm/map"><img ismap usemap="#FrontPageMap" border="0" height="24" alt="NextBack.gif (743字节)" src="../ch1/NextBack.gif" width="72"></a><!--webbot bot="ImageMap" endspan i-checksum="37865" --></p>

</font><p align="center"><font SIZE="2"></font><font size="3"><strong>具体而微的绘图程式</strong></font></p>
<font SIZE="2">

<p>在本章中我将为你示范如何在C++Builder中撰写一个完整的绘图程式。藉由这个程式的撰写,你会更加了解C++Builder的 
Canvas 
绘图精神,而在撰写这个程式的同时,我们也可将相关的技术做一个整体的检阅。此绘图程式的执行结果如下:</p>

<p><img SRC="Image7.gif" WIDTH="492" HEIGHT="387"></p>

<p>在此程式中我会以循序渐进的方式一步一步地带领你完成整个程式,基本上这个程式和C++Builder内附的范例程式有几分类似,但我必须要说明的是:在 
C++Builder中所附的范例程式是直接由原先在Delphi内以 Object Pascal 
所撰写的范例程式修改而成,所以有部份程式的写法大为违背C++ 
式物件导向精神,在迈入C++Builder 
的新世纪之後,我们当然希望写出的程式是『系出名门,血统纯正』的C++ 
式的物件导向程式。而这就是我在本章中希望带领你完成的程式。</p>

</font><p><font SIZE="2"></font><font color="#FF0000" SIZE="2">&middot;01 关於滑鼠事件(Mouse Event)</font></p><font SIZE="2">

<p>撰写绘图程式,首先要了解滑鼠事件,在Windows中定义了许多的滑鼠讯息(Message),而这些滑鼠讯息在BCB中就成为滑鼠事件了,为了要处理滑鼠事件,我们必须要选写滑鼠事件处理程式:</p>
</font><font SIZE="1">

<p>在Windows中定义的滑鼠讯息列表</p>

</font><p><font SIZE="1"></font><font SIZE="2">WM_CAPTURECHANGED</font></p><font SIZE="2">

<p>WM_LBUTTONDBLCLK</p>

<p>WM_LBUTTONDOWN</p>

<p>WM_LBUTTONUP</p>

<p>WM_MBUTTONDBLCLK</p>

<p>WM_MBUTTONDOWN</p>

<p>WM_MBUTTONUP</p>

<p>WM_MOUSEACTIVATE</p>

<p>WM_MOUSEMOVE</p>

<p>WM_NCHITTEST</p>

<p>WM_NCLBUTTONDBLCLK</p>

<p>WM_NCLBUTTONDOWN</p>

<p>WM_NCLBUTTONUP</p>

<p>WM_NCMBUTTONDBLCLK</p>

<p>WM_NCMBUTTONDOWN</p>

<p>WM_NCMBUTTONUP</p>

<p>WM_NCMOUSEMOVE</p>

<p>WM_NCRBUTTONDBLCLK</p>

<p>WM_NCRBUTTONDOWN</p>

<p>WM_NCRBUTTONUP</p>

<p>WM_RBUTTONDBLCLK</p>

<p>WM_RBUTTONDOWN</p>

<p>WM_RBUTTONUP</p>
</font><p>

<font size="3"></font><font SIZE="2">表-01 Windows内滑鼠相关 Message。</font></p><font SIZE="2">

<p>虽然在Windows作业系统中定义了非常多的讯息,但是在C++Builder 
中已经把庞大的讯息系统作适度的简化了,并且不再以讯息的方式存在,而改以事件 
(Event)的处理方式,在本章的绘图程式中,我们只要处理以下的几个事件即可:</p>

<p>OnMouseDown 滑鼠键按下事件</p>

<p>OnMouseMove 滑鼠移动事件 </p>

<p>OnMouseUp 滑鼠键放开事件</p>

<p>OnClick 任何滑鼠的点取</p>

<p>在此,你可以很明显地发现,在C++Builder的事件中并未将左右滑鼠键分别定义,而是以合并处理的方式,因此在收到以上滑鼠事件时,若你要分辨左右滑鼠事件时,必须在事件处理程式中判断左右键。</p>

<p>具备了基本的滑鼠事件认知後,我们开始进行後续的程式探索吧!</p>

<p>为了让你实际了解程式的细节,我希望将程式撰写的步骤细节交代楚,在往下进行之前,我们先建立一个新的专案档,并将其命名为 
DrawMain,同时将Form的Color性质设为黑色(clBlack),以便直接在上面画图。</p>

<p align="right"><font SIZE="2"><!--webbot bot="ImageMap" rectangle="(40,1) (71, 23)  chap31.htm" rectangle="(4,1) (36, 23)  ../ch2/chap28.htm" src="../ch1/NextBack.gif" width="72" height="24" alt="NextBack.gif (743字节)" border="0" startspan --><MAP NAME="FrontPageMap1"><AREA SHAPE="RECT" COORDS="40, 1, 71, 23" HREF="chap31.htm"><AREA SHAPE="RECT" COORDS="4, 1, 36, 23" HREF="../ch2/chap28.htm"></MAP><a href="../../../_vti_bin/shtml.exe/program/C++/ch3/chap03.htm/map1"><img ismap usemap="#FrontPageMap1" border="0" height="24" alt="NextBack.gif (743字节)" src="../ch1/NextBack.gif" width="72"></a><!--webbot bot="ImageMap" endspan i-checksum="11383" --></font></p>

<p><small><a href="../../../index.htm">首页</a> &gt;&gt; <a href="../../program.htm">程序设计</a> 
  &gt;&gt; <a href="../cbuilder.htm">C++ Builder</a>&nbsp; &gt;&gt;&nbsp; </small>具体而微的绘图程式&middot;<font color="#000000" SIZE="2">关於滑鼠事件(</font><font color="#000000"><font SIZE="2">Mouse 
  Event</font>)</font></p>
</font>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -