[GDI] Part 2. ์๋ํจ์ #1
์ , ์ , ์ฌ๊ฐํ, ์ํ, ๋ค๊ฐํ ๋ฑ์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ํจ์๋ฅผ '์๋ํจ์'๋ผ๊ณ ์ ์ํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์ , ์ฌ๊ฐํ, ์ํ, ์์์ ์ ํ ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ฒ ์ต๋๋ค.
โป ๊ตฌ์ฒด์ ์ธ ํจ์์ ์ ์์ ์ค๋ฒ๋ก๋ฉ ํจ์๋ฅผ ํ์ธํ๋ ค๋ฉด MSDN์ ์ฝ์ด ๋ณด์๊ธธ ๊ถํด๋๋ฆฝ๋๋ค.
์ ๊ทธ๋ฆฌ๊ธฐ
์ ์ ๊ตฌ์ฑํ๋ ์์๋ ๋ ์ ์ ๋๋ค. ๋ ์ ์ด ์ด์ด์ ธ ํ๋์ ์ง์ ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ด์ฃ .
์๋์ฐ์์๋ ํ์ฌ์ ์ขํ๋ถํฐ ๋ชฉ์ ์ง์ ์ขํ๋ฅผ ์ ๋ ฅํ์ฌ ์ง์ ์ ๊ทธ๋ฆด ์ ์์ต๋๋ค.
ํจ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
//ํ์ฌ์ ์์น๋ฅผ ์ด๋์ํค๊ธฐ.
CPoint MoveTo(int x, int y);
//ํ์ฌ์์น์์ ํน์ ์์น ๊น์ง ์ ์ ๊ธ๊ธฐ.
BOOL LineTo(int x, int y);
์์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// Picture control ์ผ๋ก๋ถํฐ DC ์ป๊ธฐ.
CClientDC dc(GetDlgItem(IDC_PC_VIEW));
// ํ์ฌ ์์น๋ฅผ (100, 100)์ผ๋ก ์ด๋ํ๊ธฐ.
dc.MoveTo(100, 100);
// ์ง์ ์ ํ์ฌ ์์น์ธ (100, 100) ๋ถํฐ (200, 200) ๊น์ง ๊ทธ๋ฆฌ๊ธฐ.
dc.LineTo(200, 200);
์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ
์ฌ๊ฐํ์ ๊ตฌ์ฑํ๋ ์์๋ 4๊ฐ์ ์ ์ ๋๋ค.
ํ์ง๋ง ์ ๊ณตํ๋ ํจ์์๋ ๊ตณ์ด 4๊ฐ์ ์ขํ๋ฅผ ์ ๋ ฅํ๋ ๊ฒ์ด ์๋๋ผ ์ข์๋จ, ์ฐํ๋จ์ ์ขํ๋ง ํ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๊ณต๋๋ ํจ์๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
//a) ์ง์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
BOOL Rectangle(int x1, int y1, int x2, int y2);
//b) ๋ฅ๊ทผ ๋ชจ์๋ฆฌ ์ง์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
BOOL RoundRect(int x1, int y1, int x2, int y2, int x3, int y3);
//c) CBrush๋ฅผ ์ด์ฉํด ๋ฉด์ด ๋ธ๋ฌ์๋ก ์น ํด์ง ์ง์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
void FillRect(LPCRECT lpRect, CBrush* pBrush);
//d) ๋จ์์ผ๋ก ์ฑ์์ง ์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
void FillSolidRect(int x, int y, int cx, int cy, COLORREF clr);
์๋ ์ธ์๋ ์ ๊ณต๋๋๊ฒ ๋ ์์ง๋ง ๊ฐ๋จํ ์๋ ํจ์๋ง ์๊ฐํ๊ฒ ์ต๋๋ค.
์์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// Picture control ์ผ๋ก๋ถํฐ DC ์ป๊ธฐ.
CClientDC dc(GetDlgItem(IDC_PC_VIEW));
// (100,100) ๋ถํฐ (200,200) ๊น์ง์ ์ง์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
dc.Rectangle(100, 100, 200, 200);
// (100,100) ๋ถํฐ (200,200) ๊น์ง์ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ณ , ํ์์ ๋๋น์ ๋์ด๊ฐ 10์ธ ๋ฅ๊ทผ ์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
dc.RoundRect(100, 100, 200, 200, 10, 10);
// (100,100) ๋ถํฐ (200,200) ๊น์ง์ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ณ , Red ์์์ผ๋ก ์ฑ์์ง ์ง์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ.
dc.FillSolidRect(100, 100, 100, 100, RGB(255, 0, 0));
์ํ ๊ทธ๋ฆฌ๊ธฐ
์์ ๊ทธ๋ฆฌ๋ ํจ์๋ ์ง์ฌ๊ฐํ๊ณผ ๋์ผํ๊ฒ ์ข์๋จ, ์ฐํ๋จ ์ขํ๊ฐ ํ์ํฉ๋๋ค.
BOOL Ellipse(int x1, int y1, int x2, int y2);
์์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// Picture control ์ผ๋ก๋ถํฐ DC ์ป๊ธฐ.
CClientDC dc(GetDlgItem(IDC_PC_VIEW));
// (100,100) ๋ถํฐ (200,200) ๊น์ง์ ์ํ ๊ทธ๋ฆฌ๊ธฐ.
dc.Ellipse(100, 100, 200, 200);
์ง๊ธ๊น์ง์ ๊ทธ๋ฆฌ๊ธฐ ์์ ์ ๊ธฐ๋ณธ๊ฐ์ธ ๊ฒ์์ ์ ๊ณผ ํฐ์์ผ๋ก ์ฑ์์ง ๋ํ์ด์์ต๋๋ค.
์ด์ด์ ๋ค์ ํฌ์คํ ์ ์์์ ์ ํ ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ฒ ์ต๋๋ค.
'Programming > MFC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[GDI+] Part 2. ์๋ํจ์ (0) | 2019.01.27 |
---|---|
[GDI+] Part 1. GDI+ ์ค๋น ๋จ๊ณ (0) | 2019.01.27 |
[GDI] Part 2. ์๋ํจ์ #2 (0) | 2019.01.27 |
[GDI] Part 1. GDI ๊ฐ๋ (0) | 2019.01.27 |
[MFC] Custom Button ๋ง๋ค๊ธฐ (5) | 2019.01.16 |
[MFC] Custom Button ์๊ฐ (0) | 2019.01.15 |
[Button Control] ๋์ ์์ฑ (11) | 2017.06.25 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[GDI+] Part 1. GDI+ ์ค๋น ๋จ๊ณ
[GDI+] Part 1. GDI+ ์ค๋น ๋จ๊ณ
2019.01.27 -
[GDI] Part 2. ์๋ํจ์ #2
[GDI] Part 2. ์๋ํจ์ #2
2019.01.27 -
[GDI] Part 1. GDI ๊ฐ๋
[GDI] Part 1. GDI ๊ฐ๋
2019.01.27 -
[MFC] Custom Button ๋ง๋ค๊ธฐ
[MFC] Custom Button ๋ง๋ค๊ธฐ
2019.01.16