๋ฐ˜์‘ํ˜•

์นด๋ฉ”๋ผ์˜ ์‹ค์‹œ๊ฐ„ ์˜์ƒ๊ณผ ์‹ญ์ž ์„ (Crossline)์„ ๊ฒน์ณ์„œ(Overlay) ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์„ ํ•ด๋ณด์…จ๋‚˜์š”?

Custom UI Control์„ ๋งŒ๋“ค๋˜ ์ค‘์—, ์ปจํŠธ๋กค์ด ๊นœ๋นก์ด๋Š” ๊ฒฝํ—˜์„ ํ•ด๋ณด์‹ ์  ์žˆ์œผ์‹ ๊ฐ€์š”?

 

๋ฐ˜๋“œ์‹œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊นœ๋นก์ž„ ํ˜„์ƒ(Flicker)์€ ๋”๋ธ” ๋ฒ„ํผ๋ง(Double Buffering)์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊นœ๋นก์ž„ ํ˜„์ƒ์ด ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์˜ˆ๋กœ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฒซ ๋ฒˆ์งธ ์˜ˆ์ œ๋กœ, ์นด๋ฉ”๋ผ ์˜์ƒ์— Overlay ์ž‘์—… ์‹œ ๋”๋ธ” ๋ฒ„ํผ๋ง์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

โ‘  ์นด๋ฉ”๋ผ์˜ ์‹ค์‹œ๊ฐ„ ์˜์ƒ์„ ๊ทธ๋ฆฐ๋‹ค. (์ฒซ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„)

โ‘ก ์‹ญ์ž ์„ ์„ ๊ทธ๋ฆฐ๋‹ค.

โ‘ข ์นด๋ฉ”๋ผ์˜ ๋‹ค์Œ ์˜์ƒ์„ ๊ทธ๋ฆฐ๋‹ค. (๋‘ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„)

โ‘ฃ ์‹ญ์ž ์„ ์„ ๊ทธ๋ฆฐ๋‹ค.

โ‘ค ๋ฐ˜๋ณต...

์˜์ƒ์„ ๊ทธ๋ฆฌ๊ณ (Drawing), ๊ทธ ์œ„์— ์‹ญ์ž ์„ ์ด ๊ทธ๋ ค์ง€๊ณ  ๋‹ค์‹œ ์˜์ƒ์ด ๊ทธ๋ ค์ง€๋ฉด์„œ ์‹ญ์ž ์„ ์ด ์ง€์›Œ์ง€๊ณ ...

๋ฐ˜๋ณต๋˜๋‹ค ๋ณด๋ฉด ์‹ญ์ž ์„ ์ด ๊นœ๋นก์ด๋Š” ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ์˜ˆ์ œ๋กœ, Custom Button์„ ๋”๋ธ” ๋ฒ„ํผ๋ง์œผ๋กœ ์ž‘์—…ํ•˜์ง€ ์•Š์„ ๋•Œ ๋™์ž‘์ž…๋‹ˆ๋‹ค.

[MFC] Custom Button ๋งŒ๋“ค๊ธฐ

โ‘  Background๋ฅผ ๊ทธ๋ฆฐ๋‹ค.

โ‘ก Border๋ฅผ ๊ทธ๋ฆฐ๋‹ค.

โ‘ข ์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋ฆฐ๋‹ค.

โ‘ฃ Text๋ฅผ ๊ทธ๋ฆฐ๋‹ค.

์ด๋ฒคํŠธ๊ฐ€ ์žˆ์„ ๋•Œ ๋งˆ๋‹ค ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ ๊ทธ๋ฆฌ๊ฒŒ ๋˜๋ฉด ๊นœ๋นก์ด๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, ๊ทธ๋ ค์ง€๋Š” ์žฅ์น˜(DC, Device Context)์— ๊ทธ๋ฆฌ๋Š” ๋™์ž‘์ด ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋‹ค ๋ณด๋‹ˆ,

์ง€์›Œ์ง€๊ณ  ๋‹ค์‹œ ๊ทธ๋ ค์ง€๋Š” ๋™์ž‘์ด ๊นœ๋นก์ด๋“ฏ์ด ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์นด๋ฉ”๋ผ ์˜์ƒ์€ ๋ผ์ด๋ธŒ(Live)๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ˆˆ์— ๋„์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค๋งŒ, Custom UI ์ปจํŠธ๋กค์€ ๊นœ๋นก์ด๋ฉด ๊ณจ์น˜๊ฐ€ ์•„ํ”•๋‹ˆ๋‹ค.

๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ, ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ, ํ‚ค ๋‹ค์šด(Key Down) ์ด๋ฒคํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ๋™์ž‘์—์„œ ๊นœ๋นก์ž„ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ ์ž…์žฅ์—์„œ๋Š” ์ฐธ ๊ฑฐ์Šฌ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋”๋ธ” ๋ฒ„ํผ๋ง์€ ๋ฌด์—‡์ผ๊นŒ์š”?

์ž„์‹œ ๋ฒ„ํผ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ชจ๋“  ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์„ ์ด๊ณณ์—์„œ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ตœ์ข… ๋ฒ„ํผ๋ฅผ ์žฅ์น˜์— ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ž„์‹œ ๋ฒ„ํผ๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์ด ์ถ”๊ฐ€๋˜์–ด ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ Application์— ๋ฌธ์ œ๊ฐ€ ๋  ๋งŒํ•œ ์‹œ๊ฐ„์€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•