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

📄 chap08.htm

📁 创世纪的C++ Builder --------------------------------------------------------------------------------
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<FONT SIZE=2><P>clBtnHighlight&#9; Button</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>高亮度颜色</FONT></TD></TR></TABLE><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2><P> </P><P>以下的程式会将画笔的颜色设为蓝色</P></FONT><FONT SIZE=2><P>Canvas-&gt;Pen-&gt;Color=clBlue;</P><P> </P></FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2><P>另外我们也可以利用以下的叙述来改变颜色</P><P> </P></FONT><FONT SIZE=2><P>Canvas-&gt;Pen-&gt;Color = TColor(RGB(192,192,192));</P><P> </P></FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2><P>注:</FONT><FONT SIZE=2>RGB</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>是</FONT><FONT SIZE=2>Windows</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>系统用以表示颜色的方式,它们分别代表红色(</FONT><FONT SIZE=2>Red</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>)、绿色(</FONT><FONT SIZE=2>Green</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>)及蓝色(</FONT><FONT SIZE=2>Blue</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>)。使用</FONT><FONT SIZE=2>RGB</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>时我们可以传入分别代表红、绿、蓝叁种颜色的强度值,此时它会传回</FONT><FONT SIZE=2>Windows</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>系统的对应值。例如</FONT><FONT SIZE=2>RGB(255,0,0) </FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的传回值是代表红色,所以</FONT><FONT SIZE=2>Tcolor(RGB(255,0,0)) </FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>所代表的意义和</FONT><FONT SIZE=2>clRed</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>是相同的。你也可以利用</FONT><FONT SIZE=2>ColorToRGB</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>来将</FONT><FONT SIZE=2>clRed</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>等</FONT><FONT SIZE=2>C++ Builder</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>定义的常数值传换成</FONT><FONT SIZE=2>Windows</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>系统所代表的</FONT><FONT SIZE=2>RGB</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>颜色。</P><P> </P></FONT><FONT SIZE=2><P>XX-04-02&#9;Style</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质</P><P> </P></FONT><FONT SIZE=2><P>Style</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质是用来改变画笔的型式,在</FONT><FONT SIZE=2>C++ Builder</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>中定义了以下几种画笔型式。它们都以</FONT><FONT SIZE=2>ps</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>为启始字串</FONT><FONT SIZE=2> (ps</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>代表</FONT><FONT SIZE=2>Pen Style)</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P><P> </P></FONT><FONT SIZE=2><P>psClear       </FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>清除线</P></FONT><FONT SIZE=2><P>psDash       Dash</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>线</P></FONT><FONT SIZE=2><P>psDashDot    Dash</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和</FONT><FONT SIZE=2>Dot</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>交替线</P></FONT><FONT SIZE=2><P>psDashDotDot Dash</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和一堆</FONT><FONT SIZE=2>Dot</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>线</P></FONT><FONT SIZE=2><P>psSolid       </FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>实心线</P><P> </P></FONT><FONT SIZE=2><P> </FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2><IMG SRC="Image5.gif" WIDTH=445 HEIGHT=307></P><P>图</FONT><FONT SIZE=2>XX-05</P></FONT><U><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2><P> </P></U></FONT><FONT SIZE=2><P>XX-04-03&#9;Width</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质</P><U><P> </P></U><P>笔的</FONT><FONT SIZE=2>Width</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>顾名思义,就是指笔的粗细,我在前面几个程式都已使用过了,所以在此不再细述。</P><P> </P></FONT><FONT SIZE=2><P>XX-04-04&#9;Mode</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质</P><P> </P></FONT><FONT SIZE=2><P>Pen</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的</FONT><FONT SIZE=2>Mode</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质是用以决定</FONT><FONT SIZE=2>Pen</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>如何画在</FONT><FONT SIZE=2>Canvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>上,下表列出我们可以使用的</FONT><FONT SIZE=2>Mode</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>,它们都以</FONT><FONT SIZE=2>pm</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>为启始字元,代表</FONT><FONT SIZE=2>Pen Mode</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P><P> </P></FONT><FONT SIZE=2><P>Mode&#9;&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>点的颜色</P></FONT><FONT SIZE=2><P>pmBlack&#9;&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>恒为黑色</P></FONT><FONT SIZE=2><P>pmWhite&#9;&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>恒为白色</FONT><FONT SIZE=2>.</P><P>pmNop&#9;&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>不变色。</P></FONT><FONT SIZE=2><P>pmNot&#9;&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>萤幕的反相色。</P></FONT><FONT SIZE=2><P>pmCopy&#9;&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>使用</FONT><FONT SIZE=2>Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质的颜色(内定值)</FONT><FONT SIZE=2>.</P><P>pmNotCopy&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>使用</FONT><FONT SIZE=2>Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质的反相色。</P></FONT><FONT SIZE=2><P>pmMergePenNot&#9;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和萤幕反相的</FONT><FONT SIZE=2> Merge</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P></FONT><FONT SIZE=2><P>pmMaskPenNot&#9;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和萤幕反相的</FONT><FONT SIZE=2> Mask</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P></FONT><FONT SIZE=2><P>pmMergeNotPen&#9;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>反相和萤幕的</FONT><FONT SIZE=2> Merge</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P></FONT><FONT SIZE=2><P>pmMaskNotPen&#9;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>反相和萤幕的</FONT><FONT SIZE=2> Mask</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P></FONT><FONT SIZE=2><P>pmMerge&#9;&#9;&#9;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和萤幕的</FONT><FONT SIZE=2> Merge</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P></FONT><FONT SIZE=2><P>pmNotMerge&#9;&#9;pmMerget</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的相反。</P></FONT><FONT SIZE=2><P>pmMask&#9;&#9;&#9;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和萤幕的</FONT><FONT SIZE=2> Mask</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>。</P></FONT><FONT SIZE=2><P>pmNotMask&#9;&#9;pmMask</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的反相。</P></FONT><FONT SIZE=2><P>pmXor&#9;&#9;&#9;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和萤幕的</FONT><FONT SIZE=2>Xor</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>运算。</P></FONT><FONT SIZE=2><P>pmNotXor&#9;&#9;pmXor</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的相反。</P><P> </P></FONT><FONT SIZE=2><P>Pen-&gt;Mode</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的预设值是</FONT><FONT SIZE=2>pmCopy</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>,也就是说,它会用</FONT><FONT SIZE=2>Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质的颜色来画图。在大部份情况下,你会使用这个预设值。不过若你要再针对笔做细部控制时,你就必须对其他</FONT><FONT SIZE=2>Mode</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>有一些初步的了解。</P><P> </P><P>另一个常用的</FONT><FONT SIZE=2>Mode</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>是</FONT><FONT SIZE=2> pmXor</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>,它是用来让</FONT><FONT SIZE=2>Pen-&gt;Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>和萤幕颜色做</FONT><FONT SIZE=2>XOR</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>运算,</FONT><FONT SIZE=2>XOR</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>运算最重要的特徵是:和同一个值做两次</FONT><FONT SIZE=2>XOR</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>运算时,会恢复原来的值。</P><P>因此我们可以用</FONT><FONT SIZE=2>XOR</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>模式在同一位置画两次线,将原来的线擦掉。在本书的绘图范例中就使用</FONT><FONT SIZE=2>pmXor</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>来处理滑鼠的画线,用以将上次的线条清除掉。同时</FONT><FONT SIZE=2>XOR</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>运算也是一种最简单的编码演算法,不过这不在本书讨论范围内,因此我就不再多说了。</P><P> </P></FONT><FONT SIZE=2><P>XX-05&#9;TCanvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的</FONT><FONT SIZE=2>TBrush</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质</P><P> </P></FONT><FONT SIZE=2><P>TBrush</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>可用来在</FONT><FONT SIZE=2>Canvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的特定区域下着色。和</FONT><FONT SIZE=2>TPen</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>不同的是,</FONT><FONT SIZE=2>TBrush</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>可以用不同的颜色、样式、及图案来填满</FONT><FONT SIZE=2>Canvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的特定区域,而</FONT><FONT SIZE=2>TPen</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>则是用来在</FONT><FONT SIZE=2>Canvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>上绘线。</P><P> </P></FONT><FONT SIZE=2><P>XX-04-01&#9;Style</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质</P><P> </P></FONT><FONT SIZE=2><P>TBrush</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>共有</FONT><FONT SIZE=2>bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>等几种</FONT><FONT SIZE=2> Style</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>,你可以由图</FONT><FONT SIZE=2>XX-06</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>看出这几种不同的笔刷型式有何不同。</P><P> </P><P><IMG SRC="Image6.gif" WIDTH=459 HEIGHT=368></P><P>图</FONT><FONT SIZE=2>XX-06 </P><P> </P><P>XX-05&#9;TCanvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的</FONT><FONT SIZE=2>Pixels</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质</P><P> </P></FONT><FONT SIZE=2><P>Pixel</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质,是一个二维的颜色阵列,它让你可以直接存取</FONT><FONT SIZE=2>Canvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>内的任何一点。你可以利用和一般阵列相同的存取方法来取得</FONT><FONT SIZE=2>Pixel</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>内的值。此阵列的最大索引值是</FONT><FONT SIZE=2>X,Y</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的值。</P><P> </P><P>除非必要,否则不要以</FONT><FONT SIZE=2>Pixel</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>来绘图,它是最慢的绘图方法。</P><P> </P></FONT><FONT SIZE=2><P>XX-06&#9;TCanvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的</FONT><FONT SIZE=2>Font</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质</P><P> </P></FONT><FONT SIZE=2><P>Font</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质是用来控制画在</FONT><FONT SIZE=2>Canvas</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>上的文字所使用的字形。你可以利用改变</FONT><FONT SIZE=2> Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>,</FONT><FONT SIZE=2>Name</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>,</FONT><FONT SIZE=2>Size</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>,</FONT><FONT SIZE=2>Style</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的方式来分别改变字形的颜色、使用的字形名称、字形大小及字形的样式。</P><P> </P></FONT><FONT SIZE=2><P>XX-06-1&#9;&#9;TFont</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的</FONT><FONT SIZE=2>Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>、</FONT><FONT SIZE=2>Name</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>、</FONT><FONT SIZE=2>Size</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质。</P><P> </P></FONT><FONT SIZE=2><P>TFont</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的</FONT><FONT SIZE=2>Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质和其他元件的</FONT><FONT SIZE=2>Color</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质相同。</P></FONT><FONT SIZE=2><P>Name</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质表示使用字形的名称。你可以用以下的方式来设定字形名称。</P></FONT><FONT SIZE=2><P>Canvas-&gt;Font-&gt;Name=”</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>标楷体</FONT><FONT SIZE=2>“;</P><P>Size</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质表示字形的大小。</P><P> </P></FONT><FONT SIZE=2><P>XX-06-02&#9;TFont</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>的</FONT><FONT SIZE=2>Style</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质。</P><P> </P></FONT><FONT SIZE=2><P>Style</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>性质用以表示字型的样式。它包含以下几种样式:</P><P> </P></FONT><FONT SIZE=2><P>fsBold&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>粗体</P></FONT><FONT SIZE=2><P>fsItalic&#9;&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>斜体</P></FONT><FONT SIZE=2><P>fsUnderline&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>底线</P></FONT><FONT SIZE=2><P>fsStrikeOut&#9;</FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>穿越文字的水平直线。</P><P> </P></FONT><FONT SIZE=2><P>&lt;&lt;&lt;  </FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2>以下待续</FONT><FONT SIZE=2> &#9;&gt;&gt;&gt;</P><P> </P><P> </P><P> </P></FONT><FONT FACE="新细明体" LANG="ZH-TW" SIZE=2><P> </P></FONT></BODY></HTML>

⌨️ 快捷键说明

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