์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

MFC์˜ ๊ตฌ์กฐ

 ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด MFC๋ฅผ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ๋งŒ์ผ ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜ ์ค‘์—๋„ SDKํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ํ›จ์”ฌ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด MFC๋Š” SDK์˜ ๊ตฌ์กฐ๋ฅผ ๊ฑฐ์˜ ๊ทธ๋Œ€๋กœ ํด๋ž˜์Šค๋กœ ๊ฐ€์ ธ๋‹ค ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ํ•˜๋Š” ์„ค๋ช…์€ ์ฃผ๋กœ SDK์™€ ๊ด€๋ จํ•œ ๋‚ด์šฉ์ด ๋งŽ๋‹ค.
 MFC์˜ ํ•˜๋ถ€ ๊ตฌ์กฐ๊ฐ€ SDK์ด๊ณ  ์ด๋ฒˆ ์žฅ์€ ๊ทธ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ SDK ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์—†๋‹ค๋ฉด ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด ์žฅ์€ MFC์˜ ๋‚ด๋ถ€๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ถ€๋ถ„์ด๋ฏ€๋กœ ๋ชฐ๋ผ๋„ ๋ณ„ ์ƒ๊ด€์€ ์—†์ง€๋งŒ ๋‚ด์šฉ์„ ์ž˜ ์ดํ•ดํ•œ๋‹ค๋ฉฐ ๊ทธ๋งŒํผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ธฐ๋Š” ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ์ด์ œ๋ถ€ํ„ฐ SDK๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ MFC์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ C++์„ ์ค‘์‹ฌ์œผ๋กœ ์•Œ์•„๋ณด์ž.

 SDK ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค๋ณด๋ฉด ํ•ธ๋“ค์ด๋ž€ ๋ง์„ ๋งŽ์ด ๋“ฃ๊ฒŒ ๋œ๋‹ค. ํ•ธ๋“ค์ด๋ž€ ์œˆ๋„์šฐ, ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ, ๋น„ํŠธ๋งต, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ ์˜ค๋ธŒ์ ํŠธ๋ผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ง€์นญํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํ•ธ๋“ค์„ ์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ผ์ข…์˜ ์ผ๋ จ๋ฒˆํ˜ธ๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ๋  ๋“ฏํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œˆ๋„์šฐ ํ•ธ๋“ค์ด๋ž€ ๊ฐ ์œˆ๋„์šฐ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์œˆ๋„์šฐ๋ณ„๋กœ ํ• ๋‹น๋œ ๋ฒˆํ˜ธ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์œ„๋„์šฐ์™€ ๊ด€๊ณ„๋œ ๋ชจ๋“  API์—๋Š” ์กฐ์ž‘ ๋Œ€์ƒ์ด ๋˜๋Š” ์œˆ๋„์šฐ๋ฅผ ์ง€์นญํ•˜๋Š” ๋ฌด์—‡์ธ๊ฐ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋Ÿฐ API๋“ค์˜ ์ธ์ž๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๊ทธ๋Ÿฐ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธ์ž๊ฐ€ ์žˆ๋‹ค .๋ฐ”๋กœ ๊ทธ ์ธ์ž๋กœ ์œˆ๋„์šฐ ํ•ธ๋“ค์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋ฅผ ์–ป๊ณ  ์‹ถ์œผ๋ฉด GetClientRect API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    RECT rc;

    GetClientRect(hwnd, &rc);        // hwnd ๋Š” ์œˆ๋„์šฐ ํ•ธ๋“ค

๋˜ ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋‚˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด MoveWindow API๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

    MoveWindow(hwnd, x, y, x2, y2, TRUE);

 ์œ„์˜ ๋‘ API๋ฅผ ๋ณด๋ฉด ์ž‘์—…๋Œ€์ƒ์ธ ์œˆ๋„์šฐ๋ฅผ ์ง€์นญํ•˜๊ธฐ ์œ„ํ•ด ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ ์œˆ๋„์šฐ ํ•ธ๋“ค์„ ์ž…๋ ฅ๋ฐ›๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ์œˆ๋„์šฐ ํ•ธ๋“ค๊ณผ ์œˆ๋„์šฐ ๊ด€๋ จ API๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ MFC์—์„œ๋Š” CWnd๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค. CWnd ํด๋ž˜์Šค์—๋Š” ์œˆ๋„์šฐ์™€ ๊ด€๋ จ์žˆ๋Š” ๋ชจ๋“  SDK์˜ ํ•จ์ˆ˜๋“ค์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ์•ž์˜ ์˜ˆ์— ๋น„์ถ”์–ด ๋ณด์ž๋ฉด ๋Œ€๋žต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ์–‘์„ ๋ ๊ฒŒ ๋œ๋‹ค.

    class CWnd : public CCmdTarget
    {
         HWND m_hWnd;
         .......
         BOOL GetClientRect(LPRECT lpRect);
         BOOL MoveWindow(int x, int y, int width, int height, BOOL bDraw = TRUE);
         ........
    }

 ์œ„์— CWnd ํด๋ž˜์Šค์˜ ์ •์˜๋ฅผ ์•„์ฃผ ์•ฝ๊ฐ„ ๋ณด์˜€๋Š”๋ฐ ์‹ค์ œ CWnd ํด๋ž˜์Šค์˜ ์ •์˜๋ฅผ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด MSDEV\MFC\INCLUDE ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” AFXWIN.H๋ฅผ ๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๋ฉ์น˜๊ฐ€ ๊ต‰์žฅํžˆ ํด ๊ฒƒ์ด๋‹ค. AFXWIN.H์—๋Š” MFCํด๋ž˜์Šค ๋Œ€๋ถ€๋ถ„์˜ ์ •์˜๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.  ์œ„์˜ CWnd ํด๋ž˜์Šค๋ฅผ ๋ณด๋ฉด ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋กœ m_hWnd ๊ฐ€ ์žˆ๋‹ค. ๋ฐ”๋กœ ์œˆ๋„์šฐ ํ•ธ๋“ค์ด๋‹ค.
 ๋ฉค๋ฒ„ํ•จ์ˆ˜๋กœ๋Š” ์œˆ๋„์šฐ์—๊ฒŒ ๋ฌด์—‡์ธ๊ฐ€ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์ด ์žˆ๊ธฐ ๋งˆ๋ จ์ธ์ผํ…๋ฐ MFC๋Š” ๊ทธ ํ•จ์ˆ˜๋“ค์˜ ์ด๋ฆ„์„ SDK์—์„œ์™€ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์•ž์„œ ์‚ดํŽด๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ GetClientRect๋‚˜ MoveWindow ์—ญ์‹œ SDK์—์„œ์™€ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— SDK์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด MFC๋ฅผ ๋ฐฐ์šฐ๊ธฐ๊ฐ€ ์œ ๋ฆฌํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋“ค ํ•จ์ˆ˜๋Š” ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ? ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„์ธ m_hWnd๋ฅผ ์ด์šฉํ•ด SDK์— ์žˆ๋Š” ์œˆ๋„์šฐ API๋ฅผ ๋ฐ”๋กœ ํ˜ธ์ถœํ•ด ๋ฒ„๋ฆฐ๋‹ค.

    BOOL CWnd::GetClientRect(LPRECT lpRect)
    {
          ::GetClientRect(m_hWnd, lpRect);
    }

    BOOL MoveWindow(int x, int y, int width, int height, BOOL bDraw = TRUE)
    {
           ::MoveWindow(m_hWnd, x, y, width, height)
    }

 CWnd ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ํ•จ์ˆ˜๋“ค์„ ๋ณด๋ฉด SDK ํ”„๋กœ๊ทธ๋žจ์‹œ์— ๋ณผ ์ˆ˜ ์žˆ๋˜ ์ด๋ฆ„๋“ค์ด ๋งŽ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ ๋ชจ๋‘ SDK์—์„œ์™€๋Š” ๋‹ฌ๋ฆฌ ์ธ์ž์ค‘์— ์œˆ๋„์šฐ ํ•ธ๋“ค์ด ๋น ์ ธ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ ์ด์œ ๋Š” ์œ„์—์„œ์ฒ˜๋Ÿผ ์œˆ๋„์šฐ ํ•ธ๋“ค์€ ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋กœ ์ˆจ๊ฒจ ๋†“๊ณ  ๋‚˜์ค‘์— ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
 ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ MFC์˜ ํด๋ž˜์Šค๋Š” ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์ฆ‰ MFC์˜ ๋ฐ‘๋ฐ”ํƒ•์ด SDK๋ผ๋Š” ๋ง์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์œ„์˜ ์˜ˆ๋ฅผ ๋ณด๋ฉด์„œ MFC๋Š” SDK ์œ„์— ํ•œ ๊ฒน์„ ๋” ์Œ“์•„๋‘” ์…ˆ์ด๋‹ˆ ์†๋„๊ฐ€ ๋งŽ์ด ๋Š๋ ค์ง€๊ฒ ๊ตฌ๋‚˜ ๋ผ๊ณ  ์ƒ๊ฐํ• ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค. ํ•˜์ง€๋งŒ ๊ผญ ๊ทธ๋ ‡์ง€๋Š” ์•Š๋‹ค. ์‚ฌ์‹ค ์œ„์˜ ํ•จ์ˆ˜๋“ค์€ ์ธ๋ผ์ธ ํ•จ์ˆ˜๋กœ ์ •์˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ์— ์•ž์„œ ๋งคํฌ๋กœ์ฒ˜๋Ÿผ ์น˜ํ™˜๋˜์–ด ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. MFC์—์„œ ์ง์ ‘ SDK API๋ฅผ ๋ถ€๋ฅด๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋Š” ์ธ๋ผ์ธ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.  MFC์˜ ์ธ๋ผ์ธ ํ•จ์ˆ˜๋Š” \MSDEV\MFC\INCLUDE ๋””๋ ‰ํ† ๋ฆฌ์— ๊ฐ€๋ณด๋ฉด *.inl ์ด๋ผ๋Š” ํŒŒ์ผ๋“ค์ด ์žˆ์„ํ…๋ฐ ๊ฑฐ๊ธฐ์— ๋ชจ๋‘ ์ •์˜๋˜์–ด ์žˆ๋‹ค.

 ์ด๋ฒˆ์—๋Š” ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ–๊ณ  ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž. ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋ž€ ์œˆ๋„์šฐ์—์„œ ์ถœ๋ ฅ์žฅ์น˜์— ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋ž€ ์ถœ๋ ฅ๋Œ€์ƒ์„ ์ง€์นญํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
 ํ™”๋ฉด์— ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋ฉด ํ™”๋ฉด์— ๋Œ€ํ•œ ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ํ”„๋ฆฐํ„ฐ์— ๋ฌด์—‡์ธ๊ฐ€ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋ฉด ์—ญ์‹œ ํ”„๋ฆฐํ„ฐ์— ๋Œ€ํ•œ ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ทธ๊ฒƒ์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ฆฌํ„ด๋œ๋‹ค. ์ด๋ฅผ ์ธ์ž๋กœ ์ถœ๋ ฅํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๊ทธ๋ฆฌ๋กœ ์ถœ๋ ฅ์ด ๋‚˜๊ฐ„๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ™”๋ฉด์— ์‚ฌ๊ฐํ˜•๊ณผ ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด Rectangle ์ด๋ผ๋Š” ํ•จ์ˆ˜์™€ TextOut ์ด๋ž€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

    HDC hDC = GetDC(hWnd);  // ํ™”๋ฉด์— ๋Œ€ํ•œ ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋ฅผ ์–ป๋Š”๋‹ค.

    Rectangle(hDC, 10, 10, 100, 100);    // ์‚ฌ๊ฐํ˜•์„ ๊ทธ๋ฆฐ๋‹ค.
    TextOut(hDC, 10, 10, "Sample", 6);   // ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    ReleaseDC(hWnd, hDC);       // ํ™”๋ฉด์— ๋Œ€ํ•œ ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 GetDC๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋กœ ์œˆ๋„์šฐ ํ™”๋ฉด์— ๋Œ€ํ•œ ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ ๋ฒˆํ˜ธ(ํ•ธ๋“ค)๋ฅผ ๋Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค. Rectangle๊ณผ TextOut๊ณผ ๊ฐ™์ด ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ๋กœ์˜ ์ถœ๋ ฅ์— ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ GDI(Graphic Device Interface) ํ•จ์ˆ˜๋ผ ํ•˜๋Š”๋ฐ ์ด ํ•จ์ˆ˜๋“ค์˜ ํŠน์ง•์€ ์ถœ๋ ฅํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ž๋กœ ์ถœ๋ ฅ๋Œ€์ƒ์„ ์ง€์นญํ•˜๋Š” ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ ํ•ธ๋“ค์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. MFC์—์„œ๋Š” ์ด๋Ÿฐ GDI๋“ค๊ณผ ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ ํ•ธ๋“ค์„ CDC๋ผ๋Š” ํด๋ž˜์Šค ์•ˆ์œผ๋กœ ์ง‘์–ด๋„ฃ์–ด ๋ฒ„๋ ธ๋‹ค. CDC๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค.

    class CDC : public CObject
    {
          HDC m_hDC;
          ..............
          BOOL Rectangle(int x1, int y1, int x2, int y2);
          BOOL TextOut(int x, int y, LPSTR lpstr, int size);
          ...............
    }

 ์œ„์˜ CDC ํด๋ž˜์Šค์˜ Rectangle ๊ณผ TextOut ๋ฉค๋ฒ„ํ•จ์ˆ˜๋Š” ์–ด๋–ค ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ์„๊นŒ? ์–ด๋Š ์ •๋„ ๊ฐ์ด ์žกํžŒ๋‹ค๋ฉด MFC์— ์กด์žฌํ•˜๋Š” ํด๋ž˜์Šค๋“ค์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ๋Š” ์•ˆ ๊ฒƒ์ด๋‚˜ ๋‹ค๋ฆ„์—†๋‹ค. (๋‹ค๋งŒ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ผ ๋ฟ์ด์ง€๋งŒ..) ์ •๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    BOOL CDC::Rectangle(int x1, int y1, int x2, int y2)
    {
          ::Rectangle(m_hDC, x1, y1, x2, y2);
    }

    BOOL TextOut(int x, int y, LPSTR lpstr, int size)
    {
           ::TextOut(m_hDC, x, y, lpstr, size);
    }

 CWnd ์—์„œ์ฒ˜๋Ÿผ ๋‚ด๋ถ€์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋Š” ๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ ํ•ธ๋“ค์„ ์ธ์ง€๋กœ ํ•˜์—ฌ SDK์— ์žˆ๋Š” API๋ฅผ ๊ทธ๋Œ€๋กœ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ๋‹ค. ์œ„์˜ ๊ฒƒ ์—ญ์‹œ ์ธ๋ผ์ธ ํ•จ์ˆ˜๋กœ ์ •์˜๋˜์–ด ์žˆ๋‹ค.

 ๊ฒฐ๋ก ์ ์œผ๋กœ MFC์˜ ํ•˜๋ถ€๊ตฌ์กฐ๋Š” SDK์— ์žˆ๋Š” API๋กœ ๋˜์–ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐ๊ตญ MFC๋ž€ SDK API๋ฅผ ๊ธฐ๋Šฅ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ทธ ์œ„์— ํด๋ž˜์Šค๋ž€ ์˜ท์„ ์ž…ํžŒ ๊ฒƒ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ๊ธฐ๋Šฅ์ ์ธ ๋ถ„๋ฅ˜๊ฐ€ ์•ž์„œ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ํ•ธ๋“ค์„ ์ค‘์‹ฌ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
 ์ด๋Š” ์–ด๋””๊นŒ์ง€๋‚˜ ๊ธฐ๋ณธ์ ์ธ ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์ด๊ณ  ์ข€๋” ๋ณต์žกํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค๋“ค์€ ์ด๋ฅผ ๋ฐ”ํƒ•์„ ์กด์žฌํ•˜๊ณ  ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•

+ Recent posts