
๐ฅ๏ธ C++ MFC ํ๋ก๊ทธ๋๋ฐ <๋ค์ด์ผ๋ก๊ทธ ์ค์ฒฉ ํธ>
์๋กญ๊ฒ ๋์ด ๋ค์ด์ผ๋ก๊ทธ์์ ๋ ๋ค๋ฅธ ๊ณต๊ฐ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
Form View๋ฅผ ํ์ฉํ๋ฉด ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฉ๋ด์์ ๋์ด ๋ค์ด์ผ๋ก๊ทธ์ ์์์ผ๋ก ๋ฃ์ด ๋ณด๊ฒ ์ต๋๋ค.
โ VS 2022 ํ๊ฒฝ์์ ์งํ๋์์ต๋๋ค โ
๋ฆฌ์์ค๋ทฐ ๋ก ์ด๋ํด์ Dialog ํด๋์ ์ฐํด๋ฆญํ์ฌ ๋ฆฌ์์ค ์ถ๊ฐ ๋ฅผ ์ ํํด์ฃผ์ธ์.

Dialog ํ์์ IDD_FORMVIEW ๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.

์์ฑํ์๋ ๊ฐ์ฅ ๋จผ์ ID ์์ ์ด ๋จผ์ ์
๋๋ค.
๊ธฐ๋ณธ ID๋ ์๋์น ์๋ ๋์์ ์ผ๊ธฐํ ์ ์์ผ๋ ๊ผญ ์์ ํฉ๋๋ค.

๊ทธ๋ฆฌ๊ณ FormView์ ๋ฆฌ์์ค์ ์ฐํด๋ฆญํ์ฌ ํด๋์ค ์ถ๊ฐ ๋ฅผ ์งํํ๊ฒ ์ต๋๋ค.

ํด๋์ค ์ด๋ฆ ์ง์ด์ฃผ์๊ณ , ๊ธฐ๋ณธ ํด๋์ค๋ฅผ CFormView ๋ก ์ ํํด์ฃผ์ธ์.

ํด๋์ค๊ฐ ์์ฑ์ด ์๋ฃ๋๋ฉด ํ๋ก์ ํธ ํญ์์ ํด๋์ค ๋ง๋ฒ์ฌ๋ก ๋ค์ด๊ฐ๋๋ค.
์ฌ๊ธฐ์ ํ์ํ ๋ฉ์์ง, ๊ฐ์ํจ์, ๋ฉค๋ฒ ๋ณ์๋ฑ์ ํธํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ง์ฝ ๋ด์ฉ๋ค์ด ๋จ์ง ์๋๋ค๋ฉด ๋ฆฌ์์ค ๋ณ๊ฒฝ์ฌํญ์ ๋ชจ๋ ์ ์ฅํ ๋ค์ ๋ค์ ์ผ๋ณด์ธ์.

๊ฐ์ฅ ๋จผ์ ๊ด๋ฆฌํ ํด๋์ค๋ฅผ ์ ํํด์ฃผ์ด์ผ ํฉ๋๋ค.
์๋จ์์ FormView์ ํด๋์ค๋ฅผ ์ ํํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ๊ฐ์ ํจ์์ ๋ค์ด๊ฐ์ ์ฐ์ OnInitialUpdate๋ฅผ ๋๋ธํด๋ฆญํด์ฃผ์ธ์.
๊ทธ๋ผ ์๋์ผ๋ก ํค๋์ ์์ค์ฝ๋ ํ์ผ์ ์ ์ธ๊ณผ ์ ์๋ถ๊ฐ ๋ง๋ค์ด์ง๋๋ค.

๋ํ ์์ฑ์ ํ์ํ Create๋ ๋ฏธ๋ฆฌ ๋ฃ์ด ์ฃผ๊ฒ ์ต๋๋ค.

์ฌ๊ธฐ์ ๋ญํ ๊ฑฐ๋๋ฉด ์คํฌ๋กค ๊ฐ๋ฅํ ๋ฒ์๋ฅผ ์ง์ ํด์ฃผ๊ฒ ์ต๋๋ค.
์๋ ์ฝ๋๋ฅผ ํตํด ์ํ๋๋งํผ ์ฌ์ด์ฆ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์ ๋ ์ ๋นํ 2000,2000์ผ๋ก ์ก์ ์ฃผ๊ฒ ์ต๋๋ค.

๋ค์ด์ผ๋ก๊ทธ์ ์์ค์ฝ๋๋ฅผ ์์ ํ ๊ฒ๋๋ค.
์ด์ ๋ง๋ค์ด์ง ๋ทฐ๋ฅผ ๋ค์ด์ผ๋ก๊ทธ ์์ ์์์ผ๋ก ๋ฃ์ด ๋ณด๊ฒ ์ต๋๋ค.
FormView์ ๋ณ์๋ฅผ ํ๋ ๋ค์ด์ผ๋ก๊ทธ ํด๋์ค์ ์ ์ธํด์ฃผ์ธ์.

๋ค์ด์ผ๋ก๊ทธ๊ฐ ์ด๊ธฐํ๋ ๋ ๋ทฐ๋ฅผ ๋ฃ์ด ์ฃผ๊ฒ ์ต๋๋ค.
๋ค์ด์ผ๋ก๊ทธ์ OnInitDialog์ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค.

์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ํ๋์ฉ ๋ณด๊ฒ ์ต๋๋ค.
์๋ ์ฝ๋๋ ๋ค์ด์ผ๋ก๊ทธ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ญํ ์ ํฉ๋๋ค.
GetWindowRect๋ก ํ๋ฉด ์ขํ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ScreenToClient๋ฅผ ํตํด์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ํด๋ผ์ด์ธํธ ์ขํ๊ณ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๊ทธ ๊ฐ์ rect์ ์ ์ฅํ๋๊ฒ๋๋ค.
CRect rect;
GetWindowRect(&rect);
ScreenToClient(&rect);
FormView๋ฅผ ์๋กญ๊ฒ ์์ฑํ๊ณ Create ํด์ฃผ๊ณ ์์ต๋๋ค.
์์ฑ์ ์ง์ ํด์ฃผ๋ ์ญํ ์
๋๋ค.
m_pForm = new CMyForm();
m_pForm->Create(NULL, NULL, WS_CHILD | WS_VSCROLL | WS_HSCROLL, rect, this, IDD_FORMVIEW_CHILD, NULL);
์ฌ๊ธฐ์ OnIntialUpdate๋ฅผ ๋ช
์์ ์ผ๋ก ํธ์ถํ์๋๋ฐ ๋์ค์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
๋ค์ด์ผ๋ก๊ทธ๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก OnIntialUpdate๊ฐ ํธ์ถ๋๋๋ฐ
๋ช
์์ ์ผ๋ก ๋ ํธ์ถํด์ 2๋ฒ ํธ์ถ๋๊ณ ์์ฃ .
์ด๋ ๋์ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ธฐ์ํด์ ์ผ๋ถ๋ฌ ๋ฃ์์ต๋๋ค,
m_pForm->OnInitialUpdate();
๊ทธ๋ฆฌ๊ณ ShowWindowํจ์์ SW_SHOW๋ฅผ ํตํด์ Visible ์ค์ ์ ํด์ฃผ์์ต๋๋ค.
๋ง์ฝ SW_HIDE์ ๋ฃ๋๋ค๋ฉด ๋ค์ ์๋ณด์ด๊ฒ ์ฃ
m_pForm->ShowWindow(SW_SHOW);
์ฐ์ ์ฌ๊ธฐ๊น์ง ์คํ์ ํด๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์ด์ผ๋ก๊ทธ์ ์๋ก์ด ๊ณต๊ฐ์ด ์๊ฒผ์ต๋๋ค.
๋ธ๋ฃจํ๋ฆฐํธ์ฒ๋ผ ์์
ํ ์ ์๋ ๊ณต๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ์ฃ .

์๋ก์ด ์ฝ๋๋ฅผ ํ์ค ๋ฃ์ด ๋ณด๊ฒ ์ต๋๋ค.
์ขํ์ ๊ธธ์ด๋ฅผ ์ง์ ํ์ฌ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.

ํฌ๊ธฐ๋ฅผ ์ง์ ํ๊ณ ๋ค์ ์คํํด๋ณด๋ฉด ํฌ๊ธฐ๊ฐ ๋ฌ๋ผ์ง ๊ฒ์ ๋ณด์ค ์ ์์ต๋๋ค.

์ฌ๊ธฐ๊น์ง FormView๋ฅผ ์์๋ค์ด์ผ๋ก๊ทธ๋ก ์ถ๊ฐํด๋ณด์์ต๋๋ค.
๋ค์ ํฌ์คํ
๋ถํฐ ์ด๋ฒคํธ์ ๊ด๋ จ๋ ๋ด์ฉ์ ํ๋์ฉ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.