zoukankan      html  css  js  c++  java
  • GDI

    一、颜色、画笔和画刷

      1、使用画笔

        创建画笔函数CreatePen()

        HPEN CreatePen(int fnPenStyle,    //笔的样式,如PS_SOLID(实线),PS_DASH(虚线),PS_DOT(点),PS_DASHDOT(点划线),PS_DASHDOTDOT

                 int nWidth,      //笔的像素宽度

                 COLORREF crColor  //颜色,通过RGB定义

                );

        例子:红色笔

          HPEN red _pen=CreatePen(PS_SOLID,1,RGB(255,0,0));

        注意:将任何GDI对象选择到图形设备描述表,使用SelectObject函数

          如:HDC hdc;

            SelectObject(hdc,red_pen);

           销毁由DeleteObject()函数完成ReleaseObject(red_pen);

      2、使用画刷

        创建画刷有两种:实心的(Solid)和阴影的(Hatched)

        创建实心画刷: HBRUSH CreateSolidBrush(COLORREF crColor);

        例子:HBRUSH red_brush=CreateSolidBrush(RGB(0,255,0));

        创建阴影画刷:   HBRUSH CreateHatchBrush(int fnStyle, COLORREF clrref);

          fnStyle值有:HS_BDIAGONAL  从左上到右下的45度阴影线

                 HS_CROSS      水平和垂直的交叉阴影线

                 HS_DIAGCROSS  45度交叉阴影线

                 HS_FDIAGONAL   从左下到右上的45度阴影线

                 HS_HORIZONTAL  水平阴影线

                 HS_VERTICAL    垂直阴影线 

    二、点、线、平面多边形和圆

      1、绘制点

        COLORREF SetPixel(HDC hdc,int x,int y,COLORREF crColor);

        例:HDC hdc;

          SetPixel(hdc,1,1,RGB(255,0,0));

      2、绘制线段

        A、创建画笔,并在图形设备描述表中选定该画笔,所有线段都将使用该画笔来绘制

        B、设定线段的起始位置

        C、从起始位置到终点位置绘制线段(该终点位置成为下一条线段的起始位置)

        D、如果想绘制更多的线段,重复C

        设定该光标的初始位置的函数是MoveToEx函数

          BOOL MoveToEx(HDC hdc,int x,int y,LPPOINT lpPoint);    //最后一个参数是用来保存最后一个位置

          例:Point last_pos;

            MoveToEx(hdc,10,10,&last_pos);

        设置好线段的初始位置后,调用LineTo()函数来绘制一条线段

          BOOL LineTo(HDC hdc,int xEnd,int yEnd);

      3、绘制矩形

        A、用Rectangle()函数,原型如下:

        BOOL Rectangle(HDC hdc,int nLeftRect,int nTopRect,int nRightRect,int nBottomRect);

        B、用FillRect函数,原型如下:

        int FillRect(HDC hdc,CONST RECT*lprc,HBRUSH hbr);

         绘制一个填充的矩形,包含左上角点,不包含右下角点

         例:Rect rect{10,10,20,20};

           FillRect(hdc,&rect,CreateSolidBrush(RGB(255,0,0)))

        C、用FrameRect函数,原型如下

        int FrameRect(HDC hdc,CONST RECT* lprc,HBRUSH hbr);

         绘制仅有边界的中空的矩形

         

      4、绘制圆

        绘制椭圆的函数是Ellipse(),原型如下:

        BOOL ELLIPSE(HDC hdc,int nLeftRect,int nTopRect,int nRightRect,int nBottomRect);

        如果要画圆的话,必须首先确认作为边界的矩形是正方形

      5、绘制多边形

        绘制多边形的函数是Polygon()

        BOOL Polygon(HDC hdc,CONST POINT *lpPoints,int nCount);

        例:

        POINT poly[7]={p0x,p0y,p1x,p1y,p2x,p2y,p3x,p3y,p4x,p4y,p5x,p5y,p6x,p6y};

        Polygon(hdc,poly,7);

        

  • 相关阅读:
    cmd 进入不同的驱动盘及上下级目录
    子网/ip/子网掩码
    虚拟化技术与"云"
    OSI 7层模型
    第一天的CI笔记
    在本地Apache服务器配置虚拟主机站点
    phpmailer 发送邮件
    mysql 中执行的 sql 注意字段之间的反向引号和单引号
    手动部署LNMT(Nginx+Tomcat)并实现Nginx反向代理Tomcat
    JS 创建元素的三种方法
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3404026.html
Copyright © 2011-2022 走看看