[GDI+] Part 2. ์๋ํจ์
GDI+๋ฅผ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์๋ค๋ฉด ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
์ด์ ๊ธ์์ GDI๋ก ์ง์ , ์ฌ๊ฐํ, ์ํ์ ์์์ ์ ํ ๊ทธ๋ฆฌ๋ ์์ ์ ์ค๋ช ํ์์ต๋๋ค.
์ด๋ฒ ๊ธ์์๋ GDI+๋ก ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ง์ ๊ทธ๋ฆฌ๊ธฐ
GDI+๋ GDI์๋ ๋ค๋ฅด๊ฒ 'Graphics'๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ฆฌ๋ฉฐ, Graphics๋ CDC ๋ก๋ถํฐ ์์ฑํ ์ ์์ต๋๋ค.
์๋ ์ฝ๋๋ง ๋ณด์์ ๋ GDI๋ ๋น๊ตํ๋ฉด ๋ด์ฉ์ด ๊ฐ์ํ๋์ง์?
// Picture control ์ผ๋ก๋ถํฐ DC ์ป๊ธฐ.
CClientDC dc(GetDlgItem(IDC_PC_VIEW));
// DC ๋ก๋ถํฐ Graphics ์์ฑ.
Graphics g(dc);
// Alpha 255, ๋นจ๊ฐ์ ๋๊ป๋ 3pixel ์ธ Pen ์์ฑ.
Pen pen(Color(255,255,0,0),3);
// ์ง์ ์ (100, 100) ๋ถํฐ (200, 200) ๊น์ง ๊ทธ๋ฆฌ๊ธฐ.
g.DrawLine(&pen, 100, 100, 200, 200);
์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ
์ฌ๊ฐํ๋ ์ง์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง ์ ๋๋ค.
Pen์ ์ฌ์ฉํ๊ฑฐ๋ SolidBrush๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ ํ ์ฌ๊ฐํ์ ๊ทธ๋ฆด ์ ์์ต๋๋ค.
// Picture control ์ผ๋ก๋ถํฐ DC ์ป๊ธฐ.
CClientDC dc(GetDlgItem(IDC_PC_VIEW));
โ// DC ๋ก๋ถํฐ Graphics ์์ฑ.
Graphics g(dc);
โ// Alpha 255, ๋นจ๊ฐ์ ๋๊ป๋ 3pixel ์ธ Pen ์์ฑ.
Pen pen(Color(255, 255, 0, 0), 3);
โ// ์ฌ๊ฐํ์ (100, 100) ๋ถํฐ ๊ฐ๋ก 50, ์ธ๋ก 50์ ํฌ๊ธฐ๋ก ๊ทธ๋ฆฌ๊ธฐ.
g.DrawRectangle(&pen, 100, 100, 50, 50);
// Alpha 255, ํ๋์ ๋ธ๋ฌ์ ์์ฑ.
SolidBrush brs(Color(255, 0, 0, 255));
// (100, 100) ๋ถํฐ ๊ฐ๋ก 50, ์ธ๋ก 50์ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ณ ํ๋์์ผ๋ก ์ฑ์์ง ์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
g.FillRectangle(&brs, 100, 100, 50, 50);
์ํ ๊ทธ๋ฆฌ๊ธฐ
์ํ์ ๊ทธ๋ฆฌ๋ ํจ์๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ๋์ผํฉ๋๋ค.
// Picture control ์ผ๋ก๋ถํฐ DC ์ป๊ธฐ.
CClientDC dc(GetDlgItem(IDC_PC_VIEW));
// DC ๋ก๋ถํฐ Graphics ์์ฑ.
Graphics g(dc);
// Alpha 255, ๋นจ๊ฐ์ ๋๊ป๋ 3pixel ์ธ Pen ์์ฑ.
Pen pen(Color(255, 255, 0, 0), 3);
โ// ์ํ์ (100, 100) ๋ถํฐ ๊ฐ๋ก 50, ์ธ๋ก 50์ ํฌ๊ธฐ๋ก ๊ทธ๋ฆฌ๊ธฐ.
g.DrawEllipse(&pen, 100, 100, 50, 50);
โ// Alpha 255, ํ๋์ ๋ธ๋ฌ์ ์์ฑ.
SolidBrush brs(Color(255, 0, 0, 255));
โ// (100, 100) ๋ถํฐ ๊ฐ๋ก 50, ์ธ๋ก 50์ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ณ ํ๋์์ผ๋ก ์ฑ์์ง ์ํ ๊ทธ๋ฆฌ๊ธฐ.
g.FillEllipse(&brs, 100, 100, 50, 50);
๋๋ฌด ๊ฐ๋จํ์ฃ ?
์ฌ์ค ์ ํจ์๋ค์ GDI+์ ๊ธฐ์ด๋ถ๋ถ๋ง ๋ณด์ฌ๋๋ ธ์ต๋๋ค.
์ด ์ธ์๋ GDI+๋ Polygon์ด๋ ์ํฐ์จ๋ฆฌ์ด์ฑ, ๊ณก์ ๋ฑ ์ ๋ง ๋ค์ํ๊ณ ๋ง์ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
'Programming > MFC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[GDI+] ๋๋ธ ๋ฒํผ๋ง(Double Buffering) ์ฌ์ฉํ๊ธฐ (0) | 2019.02.28 |
---|---|
[GDI] ๋๋ธ ๋ฒํผ๋ง(Double Buffering) ์ฌ์ฉํ๊ธฐ (2) | 2019.02.26 |
[GDI] ๋๋ธ ๋ฒํผ๋ง(Double Buffering) ์๊ฐ (0) | 2019.02.24 |
[GDI+] Part 1. GDI+ ์ค๋น ๋จ๊ณ (0) | 2019.01.27 |
[GDI] Part 2. ์๋ํจ์ #2 (0) | 2019.01.27 |
[GDI] Part 2. ์๋ํจ์ #1 (0) | 2019.01.27 |
[GDI] Part 1. GDI ๊ฐ๋ (0) | 2019.01.27 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[GDI] ๋๋ธ ๋ฒํผ๋ง(Double Buffering) ์ฌ์ฉํ๊ธฐ
[GDI] ๋๋ธ ๋ฒํผ๋ง(Double Buffering) ์ฌ์ฉํ๊ธฐ
2019.02.26 -
[GDI] ๋๋ธ ๋ฒํผ๋ง(Double Buffering) ์๊ฐ
[GDI] ๋๋ธ ๋ฒํผ๋ง(Double Buffering) ์๊ฐ
2019.02.24 -
[GDI+] Part 1. GDI+ ์ค๋น ๋จ๊ณ
[GDI+] Part 1. GDI+ ์ค๋น ๋จ๊ณ
2019.01.27 -
[GDI] Part 2. ์๋ํจ์ #2
[GDI] Part 2. ์๋ํจ์ #2
2019.01.27