๋ฐ˜์‘ํ˜•

MFC์—์„œ ์ œ๊ณต๋˜๋Š” ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ UI๋ฅผ ๊พธ๋ฉฐ๋ณด์…จ๋‚˜์š”?

ํ•ด๋ณด์‹  ๋ถ„์ด๋ผ๋ฉด MFC์—์„œ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์ด ์ •๋ง ์ œํ•œ์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์•„์‹ค ๊ฒ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์–ผ๋งˆ๋‚˜ ์š• ๋‚˜์˜ค๋Š” ์ˆ˜์ค€์ธ์ง€ ๋ช…์„ฑ์ด ์ž์žํ•ฉ๋‹ˆ๋‹ค...


๋‹ค์ด์–ผ๋กœ๊ทธ์— ๋ฒ„ํŠผ์„ ๋ฐฐ์น˜ํ•˜๊ณ  ์ƒ‰์ƒ์„ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

MFC์—์„œ๋Š” ๋ฆฌ์†Œ์Šค ํŽธ์ง‘๊ธฐ์—์„œ ์†์„ฑ ์„ค์ •์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ƒ‰์ƒ ํŽธ์ง‘ ๊ธฐ๋Šฅ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, C#์—์„œ๋Š” ๋ฆฌ์†Œ์Šค ํŽธ์ง‘๊ธฐ์—์„œ ์†์„ฑ๊ณผ ์ƒ‰์ƒ, ํฐํŠธ๊นŒ์ง€ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


MFC๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋ฉด ํˆฌ์ž๋˜๋Š” ์‹œ๊ฐ„์— ์ ˆ๋ฐ˜์€ ๊ธฐ๋Šฅ ๊ตฌํ˜„, ์ ˆ๋ฐ˜์€ UI๋ผ๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹ ์ •๋„์ž…๋‹ˆ๋‹ค.

๋ชจ๋‘ ๋‹ค ์ผ์ผ์ด ์ฝ”๋“œ์—์„œ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .


๋ฌผ๋ก , ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

โ‘  UI Control ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ž…ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. (Codejock์ด ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค.)

โ‘ก Custom UI Control ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.


๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ž…ํ•˜๋ฉด UI Control์„ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๊ณ , ๋””์ž์ธ๋งŒ ๋งž์ถฐ ๋†“์œผ๋ฉด ๋˜๋‹ˆ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(๊ทธ๋ž˜๋„ ๊ฐ ์ปจํŠธ๋กค์˜ ์†์„ฑ ์„ค์ •์€ ์ฝ”๋“œ์—์„œ ์ž‘์—…์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ActiveX๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด์š”.)


ํ•˜์ง€๋งŒ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ ์ •๋ง ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๋™์ž‘์—์„œ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


Custom UI Control์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ค‘์˜ ํ•˜๋‚˜๊ฐ€ '๊นœ๋นก์ž„(Flicker) ํ˜„์ƒ'์ž…๋‹ˆ๋‹ค.

๋งˆ์šฐ์Šค๊ฐ€ ์›€์ง์ผ ๋•Œ, ํด๋ฆญ๋  ๋•Œ, ๋‹ค๋ฅธ ์ปจํŠธ๋กค์ด ๋™์ž‘ํ•  ๋•Œ, ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ์›€์ง์ผ ๋•Œ ๋“ฑ๋“ฑ ๋ฐœ์ƒ ์š”์ง€๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก , ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ ๋ชจ๋“  ์ปจํŠธ๋กค์„ ๋‹ค ๊ตฌํ˜„ํ•˜๋ ค๋‹ˆ ๋งŒ๋งŒ์น˜๊ฐ€ ์•Š์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค.


์„œ๋ก ์ด ์ƒ๋‹นํžˆ ๊ธธ์–ด์กŒ์Šต๋‹ˆ๋‹ค;;

์ด๋ฒˆ ๋ชฉํ‘œ๋Š” Custom Button์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฆ‰, CButton์„ ์ƒ์†๋ฐ›์•„ ์„œ๋ธŒ ํด๋ž˜์‹ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ€ป ์„œ๋ธŒ ํด๋ž˜์‹ฑ(Subclassing) : ๊ธฐ์กด์˜ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
UI ์„œ๋ธŒ ํด๋ž˜์‹ฑ์€ ์ƒˆ๋กœ์šด UI Control์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.


๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

โ‘  ๋ฒ„ํŠผ์˜ ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ ์„ค์ •.

โ‘ก ๋ฒ„ํŠผ์˜ ์™ธ๊ณฝ์„  ์ƒ‰์ƒ ์„ค์ •.

โ‘ข ๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ ์ƒ‰์ƒ ์„ค์ •.

โ‘ฃ ๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ ํฌ๊ธฐ ์„ค์ •.


๊ฐ„๋‹จํ•˜์ฃ ? ๊ทผ๋ฐ MFC ๊ธฐ๋ณธ Control์€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

์ด์ œ SkinButton์„ ๋งŒ๋“ค์–ด ๋ณผ๊นŒ์š”?!

๋ฐ˜์‘ํ˜•