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

📄 chap8_2.htm

📁 vc教程,真正的程序员用Visual C++。如果你想当程序员
💻 HTM
📖 第 1 页 / 共 2 页
字号:
          <p> (2)CreateHatchBrush(int nIndex,DWORD 
            crColor);创建一个带阴影的刷子,nIndex代表一种影线模式:</p>
          <p> 图8-2刷子的各种影线效果</p>
          <p> (3)用CreatePatternBrush(CBitmap* 
            pBitmap)</p>
          <p> 用一个位图作刷子,一般采用8X8的位图,因为刷子可以看作8X8的小位图。当Windows桌面背景采用图案(如weave)填充时,使用的就是这种位图刷子。</p>
          <p> (4)同样可以使用SelectStockObject()从库存刷子中选取一个:</p>
          <p> BLACK_BRUSH 黑色刷子</p>
          <p> WHITE_BRUSH 白色刷子</p>
          <p> DKGRAY_BRUSH 暗灰刷子</p>
          <p> GRAY_BRUSH 灰色刷子</p>
          <p> LTGRAY_BRUSH 淡灰色刷子</p>
          <p> NULL_BRUSH 空刷子,内部不填充</p>
          <p> <b>字体(CFont)</b>:封装了GDI字体对象,用户可以建立一种GDI字体,并使用CFont的成员函数来访问它。关于CFont类,我们在前面已经作了一些介绍,这里不再赘述,读者可以参见前一章内容。</p>
          <p> <b>位图(CBitmap)</b>:封装一GDI位图,它提供成员函数装载和操作位图。</p>
          <p> <b>调色板(CPalette)</b>:封装GDI调色板,它保存着系统可用的色彩信息,是应用程序和彩色输出设备上下文的接口。</p>
          <p> <b>区域CRgn类</b>:封装GDI区域。区域是窗口内的一块多边形或椭圆形的区域。CRgn用于设备环境(通常是窗口)内的区域操作。CRgn通常与CDC的有关剪裁(clipping)的成员函数配合使用。</p>
          <p> 有关位图和调色板的使用在第十一章“多媒体编程”还要再作详细阐述。</p>
          <b>
          <p>  </p>
          </b>
          <p><b> </b>8.2.3常见的绘图任务</p>
          <p> <b></b>输出文本</p>
          <p> 字体大小计算:通过调用GetTextMetrics()返回当前使用字体的尺寸描述,如前面文 
            本编辑所演示的那样。</p>
          <p> 字体颜色设置:</p>
          <p> 设置前景色:CDC::SetTextColor(int 
            nColor);</p>
          <p> 设置背景色:CDC::SetBkColor(int 
            nColor);</p>
          <p> 例如:</p>
           
          <p>dc.SetTextColor(WHITE);</p>
          <p>dc.SetBkColor(DK_BLUE);</p>
          
          <p>dc.TextOut(10,10,“White 
            Text on blue background”,30);</p>
          <p> 文字输出:</p>
          <p> 除了我们前面介绍的文本输出函数TextOut()之外,还有其他几个函数可用于文本输 
            出:</p>
          <p> TabbedTextOut:象TextOut一样显示正文,但用指定的制表间隔扩充制表键Tab。 
            在前面的文本编辑器中,当输入一个Tab时,TextOut在屏幕上输出一个黑色方块。</p>
          <p> ExtTextOut:在指定的矩形中显示正文。可以用该函数删去超出矩形的正文,用正 
            文背景填充矩形,调整字符间隔。</p>
          <p> DrawText:在指定矩形种显示正文,可以用这个函数扩展制表键Tab。在格式化矩 
            形时调整正文左对齐、右对齐或居中;还可以在一个词中断开以适应矩形边界。</p>
          <p><b> 画点</b></p>
          <p> SetPixel在指定坐标处按指定色彩画一点。</p>
          <p><b> 画线</b></p>
          <p> MoveToEx将直线起点移动到指定坐标处,LineTo从起点开始画直线到终点处。使 
            用的线型由当前所用画笔指定。</p>
          <p><b> 画弧</b></p>
           
          <p>Arc(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);</p>
          
          <p><b> </b></p>
          <b>
          <p align="center">  <img src="T8_3.gif" alt="T8_3.tif (43298 bytes)" width="189" height="97"></p>
          </b>
          <p align="center"><b> </b>图8-3 
            弧线的坐标定位</p>
          <p><b> </b>封闭图形</p>
          <p> 矩形Rectangle</p>
          <p> 圆角矩形RoundRect()</p>
          <p> Ellipse在一个矩形内画椭圆</p>
          <p> Chord弦形图</p>
          <p> Pie画饼形图</p>
          <p> Polygon生成封闭的多边形</p>
          <p> PolyPolygon画完整的一组多边形</p>
           
          <p><b> </b></p>
          <p> <b></b>其它常用的绘图函数还有:</p>
          <p>FillRect:用指定颜色填充矩形且不画边线</p>
          <p>Draw3dRect:这是一个非常实用的函数,用于绘制各种3D边框。它的函数原型如下:</p>
          
          <blockquote>
            <blockquote> 
              <p><b>void Draw3dRect( LPCRECT </b><i>lpRect</i><b>, COLORREF </b><i>clrTopLeft</i><b>, 
                COLORREF </b><i>clrBottomRight</i><b> );</b></p>
              <p> <b>void Draw3dRect( int </b><i>x</i><b>, int </b><i>y</i><b>, 
                int </b><i>cx</i><b>, int </b><i>cy</i><b>, COLORREF </b><i>clrTopLeft</i><b>, 
                COLORREF </b><i>clrBottomRight</i><b> );</b></p>
              
              <p>通过设置上下边框的颜色clrTopLeft和clrBottomRight,可以绘制出凸出或 凹陷等各种效果的3D边框。</p>
              <p align="center"><img src="T8_4.gif" alt="T8_4.tif (91724 bytes)" width="389" height="172"></p>
              </blockquote>
             
            <p align="center">图8-4 Draw3dRect绘制3D边框</p>
            <p>DrawFocusRect:用点线画一个矩形框,内部不填充,边线是用于屏幕上当前色的相反色画出来的,故第二次画时,会擦除原来所画的线。</p>
            <p>ExtFloodFill:用给定的颜色,利用当前刷子填充表面被一个边线包围的区域,用户可以有选择地填充一个由指定颜色组成的区域。</p>
            <p>FloodFill:用给定的颜色,利用当前所选的刷子填充显示的底面被一个边线所包围的区域,如多边形区域的填充。</p>
            </blockquote>
           
          <p>FrameRect:绘制矩形边框时内部不填充。</p>
          <p>InvertRect:在某一矩形区域内反显现有颜色。</p>
          <div align="center">
            <center>
              <table border="0" cellpadding="0" cellspacing="0" width="615">
                <tr> 
                  <td><a href="chap8_1.htm">上一页</a></td>
                  <td>
                    <p align="right"><a href="chap8_3.htm">下一页</a>
                  </td>
                </tr>
              </table>
              <a href="http://www.cpcw.com">电脑报首页</a> <a href="../../index.htm">网络学院首页</a>
</center>
          </div>
          <hr noshade color="#3973DE" size="1">
          
          <p align="center">本教程由<a href="http://vcdynasty.yeah.net">Visual C++王朝(Where 
            programmers come together)</a>协助制作<br>
            未经许可,请勿以任何形式复制
        </td>
      </tr>
    </table>
    
  </center>
</div>

</body>
</html>

⌨️ 快捷键说明

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