[C++/MFC] ๐Ÿ–ฅ๏ธ MFC ํ”„๋กœ๊ทธ๋ž˜๋ฐ (3)

Singery00ยท2024๋…„ 10์›” 20์ผ

MFC

๋ชฉ๋ก ๋ณด๊ธฐ
3/6
post-thumbnail

๊ฐœ์š”

๐Ÿ–ฅ๏ธ C++ MFC ํ”„๋กœ๊ทธ๋ž˜๋ฐ <๋‹ค์ด์–ผ๋กœ๊ทธ ์ƒ๋ช…์ฃผ๊ธฐ ํŽธ>

์ƒˆ๋กญ๊ฒŒ ๋„์› ๋˜ ๋‹ค์ด์–ผ๋กœ๊ทธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

โ— VS 2022 ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค โ—


๋ณธ๋ก 


๋ชจ๋‹ฌ ๋‹ค์ด์–ผ๋กœ๊ทธ

๊ฐ์ฒด ์ž๋™ ๊ด€๋ฆฌ

๋ชจ๋‹ฌ ๋‹ค์ด์–ผ๋กœ๊ทธ๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋‹ซํž ๋•Œ๊นŒ์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋‹ซํžˆ๋ฉด ์‹œ์Šคํ…œ์ด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋๋‚˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์ด์–ผ๋กœ๊ทธ ๊ฐ์ฒด๊ฐ€ ํŒŒ๊ดด๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

DoMoal() ๋™์ž‘

๊ทธ๋Ÿฌ๋‚˜ ์žฌ๋ฐŒ๋Š” ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค.
DoModal() ํ•จ์ˆ˜ ์ดํ›„ ๋ฉ”์‹œ์ง€๋ฐ•์Šค๋ฅผ ํ•˜๋‚˜ ๋„์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ํ•ด๋ณด๋ฉด ๋‹ค์ด์–ผ๋กœ๊ทธ ์ฐฝ๋งŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
๋ฉ”์‹œ์ง€ ๋ฐ•์Šค๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ๋ฅผ ๊บผ์•ผ ๋‚˜ํƒ€๋‚˜์ฃ .

๋ชจ๋‹ฌ ๋‹ค์ด์–ผ๋กœ๊ทธ๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋‹ซํž ๋•Œ๊นŒ์ง€ ๊ทธ ์ดํ›„์˜ ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

DoModal() ํ•จ์ˆ˜๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋‹ซํžŒ ํ›„์— ๋ฐ˜ํ™˜๋˜๋ฉฐ, ๊ทธ ์ดํ›„์— ์ž‘์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.


๋ชจ๋ธ๋ฆฌ์Šค

๋ชจ๋ธ๋ฆฌ์Šค ๋‹ค์ด์–ผ๋กœ๊ทธ๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ๋™์•ˆ์—๋„ ๋‹ค๋ฅธ ์ฐฝ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์ด์–ผ๋กœ๊ทธ ๊ฐ์ฒด๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜๋ฉฐ, ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋‹ซํž ๋•Œ ์ˆ˜๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํฌ์ธํ„ฐ ๊ฐ์ฒด ์„ ์–ธ

๋ชจ๋ธ๋ฆฌ์Šค ๋‹ค์ด์–ผ๋กœ๊ทธ ๊ฐ์ฒด ํฌ์ธํ„ฐ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ ํ•จ์ˆ˜ ์ž‘์„ฑ

๊ทธ๋ฆฌ๊ณ  ๋‹ค์ด์–ผ๋กœ๊ทธ ๊ฐ์ฒด๊ฐ€nullptr์ด๋ฉด ์ƒ์„ฑ, ์•„๋‹ˆ๋ฉด ํฌ์ปค์Šค๋ฅผ ์ฃผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์†Œ๋ฉธ์ž

๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ชจ ์œˆ๋„์šฐ๊ฐ€ ๊บผ์ง€๋ฉด ๋‹น์—ฐํžˆ ๊ฐ™์ด ๊บผ์ง€๋„๋ก ํ•ด์•ผ๊ฒ ์ฃ ?
๋‹ค์ด์–ผ๋กœ๊ทธ ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๋ฉด ์ฐฝ์„ ๋„๊ณ , ํ• ๋‹น ํ•ด์ œ๋ฅผ ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

OnClose()

์†Œ๋ฉธ์ž์— ํ•ด์ œ๋ฅผ ํ•ด์คฌ๋Š”๋ฐ ์™œ OnClose()๋„ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋‚˜์š”?

์†Œ๋ฉธ์ž์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค๋ฉด ์›์น™์ ์œผ๋กœ OnClose์—์„œ ๋ณ„๋„๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ์ฒ˜๋ฆฌํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ MFC์—์„œ ๋ชจ๋ธ๋ฆฌ์Šค ๋‹ค์ด์–ผ๋กœ๊ทธ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ ์ฐฝ์„ ์ˆ˜๋™์œผ๋กœ ๋‹ซ์•„์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

OnClose() ๋ฉ”์‹œ์ง€ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•ด์ฃผ๊ณ 

๋ฉ”์‹œ์ง€๋งต์— ON_WM_CLOSE๋กœ ๋งคํ•‘์„ ํ•ด์ค๋‹ˆ๋‹ค.
์ฐธ๊ณ ๋กœ ๋ฉ”์‹œ์ง€๋งต์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์€ ๋งคํฌ๋กœ๋กœ ์ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  OnClose()์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ๊ตฌํ˜„ํ•œ ๋’ค, OnClose()๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋™์ž‘์„ ํ•ด๋ณด๋ฉด?
์ฐฝ์ด ๋„์›Œ์ง€๊ณ  ์ด๋ฏธ ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด ํฌ์ปค์Šค๋ฅผ ์ฃผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ถ€๋ชจ๋ฅผ ์ข…๋ฃŒํ•  ์‹œ ๊ฐ™์ด ์ข…๋ฃŒ๋ ๊ฒ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ž์‹ ๋‹ค์ด์–ผ๋กœ๊ทธ๋ฅผ ๋„๊ณ  ๋‹ค์‹œ ํ‚ค๋ฉด ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๋Š” ์ž์‹์ด ์ข…๋ฃŒ๋  ๋•Œ ๋‹ค์ด์–ผ๋กœ๊ทธ ๊ฐ์ฒด ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ nullptr๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


๋‹ค์ด์–ผ๋กœ๊ทธ ๊ฐ์ฒด์—์„œ ๋ถ€๋ชจ ๊ฐ’ ๋ณ€๊ฒฝ

OnClose()ํ•จ์ˆ˜ ์„ ์–ธํ•˜๊ณ 

๋ฉ”์‹œ์ง€๋งต์— ๋งคํฌ๋กœ ๋งคํ•‘ํ•ด์ฃผ๊ณ 

๋ถ€๋ชจ๋ฅผ ๋ฐ›์•„์„œ ๋ถ€๋ชจ์˜ ๋‹ค์ด๋Ÿด๋กœ๊ทธ ๊ฐ์ฒด๋ฅผ nullptr๋กœ ํ•ด์ฃผ๋ฉด ๋˜๊ฒ ์ฃ ?

๊ทธ๋ฆฌ๊ณ  ๋™์ž‘์„ ๋ณด๋ฉด ์ด์ œ ์ž์—ฐ์Šค๋Ÿฌ์šด ํ”Œ๋กœ์šฐ๋ฅผ ๋”ฐ๋ผ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

MFC ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ  ๋‹ค๋ฅผ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.
๊ฒฐ๊ตญ C++ ํฌ์ธํ„ฐ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ž‘ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŒ…์—๋Š” ๋‹ค๋ฅธ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๊ด€๋ จ ๋ฐ ์ปค์Šคํ…€ ์š”์†Œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋‹ค์ด์–ผ๋กœ๊ทธ์— ๋„ฃ์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

profile
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ณด์ž

0๊ฐœ์˜ ๋Œ“๊ธ€