๋ฐ˜์‘ํ˜•

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์ด๋‚˜ ์•ˆํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ, ๊ณก์„  ๋“ฑ ์ •๋ง ๋‹ค์–‘ํ•˜๊ณ  ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

My_GDIPlus.zip

๋ฐ˜์‘ํ˜•