Win32 Windows編程 十

來源:互聯網
上載者:User

標籤:win32   圖形   mfc   sdk   c++   

一 Windows繪圖

1 圖形繪製

1.1 圖形繪製的方式

擷取到繪圖的控制代碼,裝置描述符(DC),使用相應的繪圖API,在裝置上繪製圖形

1.2 顏色

RGB,每種顏色8位,共24位顏色

32位顏色:顏色數量24為顏色,多出的8位表示灰階。

16位:顏色數量是2的16次方。

Win32下,顏色的定義使用 COLORREF。RGB的宏定義顏色

COLORREF nColor = RGB( 0, 0, 0 );  黑色

COLORREF nColor = RGB( 255, 255, 255 ); 白色

COLORREF nColor = RGB( 255, 255, 255 ); 紅色

從一個顏色值中擷取RGB三色:

int  nRed = GetRValue( DWord rgb )

int nGreen = GetGValue( DWord rgb )

int nBlue = GetBVakue( DWord rgb )

1.3 點的繪製和擷取

繪製: SetPixel

COLORREF SetPixel(  HDC hdc,    // handle to DC  int nXPos,  // x-coordinate of pixel  int nYPos,   // y-coordinate of pixel
  COLORREF crColor // 顏色值
);

擷取: GetPixel

COLORREF GetPixel(  HDC hdc,    // handle to DC  int nXPos,  // x-coordinate of pixel  int nYPos   // y-coordinate of pixel);
1.4 直線的繪製

MoveToEx移動當前點到指定位置

LineTo 從當前點繪製之前到指定位置

1.5 弧的繪製

Arc和AngleArc提供不同的繪製弧的方式

BOOL AngleArc(  HDC hdc,            // handle to device context  int X,              // x-coordinate of circle‘s center 圓心x座標  int Y,              // y-coordinate of circle‘s center 圓心y座標  DWORD dwRadius,     // circle‘s radius   園的半徑  FLOAT eStartAngle,  // arc‘s start angle開始角度  FLOAT eSweepAngle   // arc‘s sweep angle夾角);

圓弧的切割方式
int SetArcDirection(
  HDC hdc,           // handle to device context  int ArcDirection   // new arc direction);
BOOL Arc(  HDC hdc,         // handle to device context  int nLeftRect,   // x-coord of rectangle‘s upper-left corner  int nTopRect,    // y-coord of rectangle‘s upper-left corner  int nRightRect,  // x-coord of rectangle‘s lower-right corner  int nBottomRect, // y-coord of rectangle‘s lower-right corner 外切矩形的座標  int nXStartArc,  // x-coord of first radial ending point  int nYStartArc,  // y-coord of first radial ending point  int nXEndArc,    // x-coord of second radial ending point  int nYEndArc     // y-coord of second radial ending point);

1.6 折線

BOOL Polyline(  HDC hdc,            // handle to device context  CONST POINT *lppt,  // array of endpoints  int cPoints         // number of points in array);

BOOL PolylineTo(  HDC hdc,            // handle to device context  CONST POINT *lppt,  // array of points  DWORD cCount        // number of points in array); 與PolyLine類似, 在繪製PolyLine前,從當前點使用LineTo繪製直線到Polyline的第一個頂點




















相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.