{"id":1652,"date":"2026-03-24T14:07:18","date_gmt":"2026-03-24T14:07:18","guid":{"rendered":"https:\/\/wayhope.kro.kr\/?p=1652"},"modified":"2026-08-31T07:32:35","modified_gmt":"2026-08-31T07:32:35","slug":"win32-%ea%b0%9c%eb%b0%9c-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac","status":"publish","type":"post","link":"https:\/\/wayhope.kro.kr\/?p=1652","title":{"rendered":"Win32 \uac1c\ubc1c \ud575\uc2ec \uc815\ub9ac"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Windows\uc5d0\uc11c GUI \ud504\ub85c\uadf8\ub7a8\uc774 \uc5b4\ub5bb\uac8c \ub3d9\uc791\ud558\ub294\uc9c0 \uc81c\ub300\ub85c \uc774\ud574\ud558\ub824\uba74 Win32\ub97c \ud55c \ubc88\ucbe4 \ubcf4\ub294 \uac83\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc694\uc998\uc740 WPF, WinUI, Qt, Electron \uac19\uc740 \uace0\uc218\uc900 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc9c0\ub9cc, Windows\uc758 \ub124\uc774\ud2f0\ube0c \uae30\ub2a5\uacfc \uc0c1\ud638\uc791\uc6a9\ud558\ub294 \uae30\ubcf8 \uad6c\uc870\uc5d0\ub294 \uc5ec\uc804\ud788 Win32 API\uac00 \uae4a\uac8c \uc5f0\uacb0\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\ub97c \uacf5\ubd80\ud558\uba74 <code>Window<\/code>, <code>Message<\/code>, <code>Handle<\/code>, <code>Window Procedure<\/code>, <code>Message Loop<\/code> \uac19\uc740 \uac1c\ub150\uc774 \uc65c \uc874\uc7ac\ud558\ub294\uc9c0 \uc774\ud574\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc758 \ud575\uc2ec\uc740 API\ub97c \ub9ce\uc774 \uc678\uc6b0\ub294 \uac83\uc774 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Windows\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc5b4\ub5bb\uac8c \uad00\ub9ac\ud558\uace0, \uc785\ub825\uacfc \uc774\ubca4\ud2b8\ub97c \uc5b4\ub5a4 \ubc29\uc2dd\uc73c\ub85c \uc804\ub2ec\ud558\uba70, \ud504\ub85c\uadf8\ub7a8\uc774 OS\uc758 \ub9ac\uc18c\uc2a4\ub97c \uc5b4\ub5bb\uac8c \ucc38\uc870\ud558\ub294\uc9c0\ub97c \uc774\ud574\ud558\ub294 \uac83<\/strong>\uc774 \ud575\uc2ec\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Win32\ub780<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\ub294 Windows\uac00 \uc81c\uacf5\ud558\ub294 \ub124\uc774\ud2f0\ube0c API \uc9d1\ud569\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\/C++ \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c Windows\uc758 \uae30\ub2a5\uc744 \uc9c1\uc811 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub2e4\uc591\ud55c API\ub97c \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GUI\ubfd0\ub9cc \uc544\ub2c8\ub77c \ud30c\uc77c, \ud504\ub85c\uc138\uc2a4, \uc2a4\ub808\ub4dc, \ub3d9\uae30\ud654, \uba54\ubaa8\ub9ac, \uc785\ub825 \ub4f1 Windows\uc758 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \ub2e4\ub8f0 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application -&gt; Win32 API -&gt; Windows -&gt; System Resources\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub984 \ub54c\ubb38\uc5d0 32\ube44\ud2b8 \uc804\uc6a9 API\ucc98\ub7fc \ubcf4\uc774\uc9c0\ub9cc \uadf8\ub807\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">64\ube44\ud2b8 Windows\uc5d0\uc11c\ub3c4 Win32 API\ub294 \uc5ec\uc804\ud788 Windows \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc758 \uc911\uc694\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Win32 GUI\uc758 \uae30\ubcf8 \uad6c\uc870<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32 GUI \ud504\ub85c\uadf8\ub7a8\uc744 \uc774\ud574\ud560 \ub54c \uac00\uc7a5 \uba3c\uc800 \uc7a1\uc544\uc57c \ud558\ub294 \uad6c\uc870\ub294 \ub2e4\uc74c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application -&gt; Window -&gt; Message -&gt; Message Loop -&gt; Window Procedure -&gt; Application Logic\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud504\ub85c\uadf8\ub7a8\uc740 Windows\uc5d0 Window\ub97c \uc0dd\uc131\ud558\uace0, Windows\uac00 \uc804\ub2ec\ud558\ub294 Message\ub97c Message Loop\uc5d0\uc11c \ubc1b\uc544 Window Procedure\ub97c \ud1b5\ud574 \ucc98\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Win32 GUI \ud504\ub85c\uadf8\ub7a8\uc740 \uc77c\ubc18\uc801\uc778 \uc21c\ucc28 \uc2e4\ud589 \ud504\ub85c\uadf8\ub7a8\uacfc \ub2ec\ub9ac <strong>\uba54\uc2dc\uc9c0\ub97c \uae30\ub2e4\ub9ac\uace0 \ucc98\ub9ac\ud558\ub294 \uc774\ubca4\ud2b8 \uae30\ubc18 \uad6c\uc870<\/strong>\ub97c \uac00\uc9c4\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud504\ub85c\uadf8\ub7a8 \uc2dc\uc791<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc804\ud1b5\uc801\uc778 Win32 GUI \ud504\ub85c\uadf8\ub7a8\uc740 <code>WinMain()<\/code> \ub610\ub294 <code>wWinMain()<\/code>\uc5d0\uc11c \uc2dc\uc791\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wWinMain -&gt; Window Class Registration -&gt; Window Creation -&gt; ShowWindow -&gt; Message Loop\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77c\ubc18\uc801\uc778 C++ \ud504\ub85c\uadf8\ub7a8\uc758 <code>main()<\/code>\uacfc \ube44\uc2b7\ud55c \uc5ed\ud560\uc744 \ud558\uc9c0\ub9cc Windows GUI \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc9c4\uc785\uc810\uc774\ub77c\ub294 \ucc28\uc774\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\ub300\uc801\uc778 Windows \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c\ub294 Unicode \ucc98\ub9ac\ub97c \uc704\ud574 <code>wWinMain()<\/code>\uacfc Wide Character API\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Window Class<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c\ub294 Window\ub97c \ub9cc\ub4e4\uae30 \uc804\uc5d0 Window Class\ub97c \ub4f1\ub85d\ud558\ub294 \uacfc\uc815\uc774 \ud544\uc694\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Window Class\uc5d0\ub294 \ud574\ub2f9 Window\uac00 \uc5b4\ub5a4 \ubc29\uc2dd\uc73c\ub85c \ub3d9\uc791\ud560\uc9c0\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc815\ubcf4\ub97c \ub4f1\ub85d\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc73c\ub85c Window Procedure\ub97c \uc9c0\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Window Class -&gt; Window Procedure\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ud6c4 \ub4f1\ub85d\ud55c Window Class\ub97c \uae30\ubc18\uc73c\ub85c \uc2e4\uc81c Window\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Window Class -&gt; CreateWindowEx -&gt; HWND\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uad6c\uc870 \ub54c\ubb38\uc5d0 Win32\uc5d0\uc11c Window\ub294 \ub2e8\uc21c\ud788 \ud654\uba74\uc5d0 \ub098\ud0c0\ub098\ub294 \uc0ac\uac01\ud615 \ud558\ub098\uac00 \uc544\ub2c8\ub77c <strong>\ud2b9\uc815 Window Procedure\uc640 \uc5f0\uacb0\ub41c OS \uad00\ub9ac \uac1d\uccb4<\/strong>\ub77c\uace0 \uc774\ud574\ud558\ub294 \ud3b8\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">HWND<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>HWND<\/code>\ub294 Window\ub97c \uc2dd\ubcc4\ud558\uae30 \uc704\ud55c Handle\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CreateWindowEx -&gt; HWND -&gt; Windows Window\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 Window \uc790\uccb4\uc758 \ub0b4\ubd80 \uad6c\uc870\ub97c \uc9c1\uc811 \uad00\ub9ac\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c Handle\uc744 Windows API\uc5d0 \uc804\ub2ec\ud574\uc11c \ud574\ub2f9 Window\ub97c \uc870\uc791\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc84\ud2bc\uc774\ub098 Edit \uac19\uc740 \uae30\ubcf8 Control\ub3c4 Win32\uc5d0\uc11c\ub294 Window\ub85c \ucde8\uae09\ub418\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Window -&gt; Control -&gt; HWND\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Win32 \ucf54\ub4dc\ub97c \ubcf4\uba74 <code>HWND<\/code>\uac00 \ub9e4\uc6b0 \uc790\uc8fc \ub4f1\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Handle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\ub97c \uc774\ud574\ud560 \ub54c \uc911\uc694\ud55c \uac1c\ub150\uc774 Handle\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Handle\uc740 Windows\uac00 \uad00\ub9ac\ud558\ub294 \uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4\ub97c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ucc38\uc870\ud558\uae30 \uc704\ud55c \uc2dd\ubcc4\uc790\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application -&gt; Handle -&gt; OS Resource\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 \uc608\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HWND -&gt; Window\nHDC -&gt; Device Context\nHINSTANCE -&gt; Application Instance\nHANDLE -&gt; \ub2e4\uc591\ud55c OS Resource\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud30c\uc77c\uc774\ub098 \ud504\ub85c\uc138\uc2a4, \uc2a4\ub808\ub4dc, \ub3d9\uae30\ud654 \uac1d\uccb4 \ub4f1\ub3c4 Handle\uc744 \ud1b5\ud574 \uc811\uadfc\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc911\uc694\ud55c \uac83\uc740 Handle\uc744 \uc77c\ubc18\uc801\uc778 C++ \uac1d\uccb4 \ud3ec\uc778\ud130\ucc98\ub7fc \uc9c1\uc811 \uc870\uc791\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c <strong>Windows API\uc5d0 \uc804\ub2ec\ud574\uc11c OS\uac00 \uad00\ub9ac\ud558\ub294 \ub9ac\uc18c\uc2a4\ub97c \uc81c\uc5b4\ud55c\ub2e4\ub294 \uac83<\/strong>\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Message<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32 GUI\uc758 \ud575\uc2ec\uc740 Message\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\uc790\uac00 \ud0a4\ubcf4\ub4dc\ub97c \ub204\ub974\uac70\ub098 \ub9c8\uc6b0\uc2a4\ub97c \ud074\ub9ad\ud558\uac70\ub098 \ucc3d\uc758 \ud06c\uae30\ub97c \ubcc0\uacbd\ud558\uba74 Windows\uac00 \uad00\ub828 Message\ub97c \uc804\ub2ec\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 Message\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WM_PAINT\nWM_SIZE\nWM_CLOSE\nWM_DESTROY\nWM_KEYDOWN\nWM_KEYUP\nWM_MOUSEMOVE\nWM_LBUTTONDOWN\nWM_COMMAND\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc804\uccb4\uc801\uc778 \ud750\ub984\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User Input -&gt; Windows -&gt; Message Queue -&gt; Message Loop -&gt; Window Procedure\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 Message\ub97c \uc9c1\uc811 \ub9cc\ub4e4\uc5b4\ub0b4\ub294 \uac83\uc774 \uc544\ub2c8\ub77c Windows\uac00 \uc804\ub2ec\ud558\ub294 Message\ub97c \ubc1b\uc544 \ucc98\ub9ac\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c \ub3d9\uc791\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Message Queue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Windows\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc804\ub2ec\ud574\uc57c \ud560 Message\ub97c Queue\uc5d0 \ub123\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Windows -&gt; Message Queue -&gt; Application\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uc0ac\uc6a9\uc790\uac00 \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uba74 \uad00\ub828 \uc785\ub825\uacfc Window \uc0c1\ud0dc\uc5d0 \ub530\ub77c Message\uac00 \uc0dd\uc131\ub418\uace0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ucc98\ub9ac\ud560 \uc218 \uc788\ub3c4\ub85d \uc804\ub2ec\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uad6c\uc870 \ub355\ubd84\uc5d0 \uc5ec\ub7ec \uc785\ub825\uacfc \uc2dc\uc2a4\ud15c \uc774\ubca4\ud2b8\ub97c \uc21c\ucc28\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Message Loop<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 Message Loop\ub97c \ud1b5\ud574 Message\ub97c \uacc4\uc18d \uac00\uc838\uc628\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77c\ubc18\uc801\uc778 \uad6c\uc870\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GetMessage -&gt; TranslateMessage -&gt; DispatchMessage -&gt; Window Procedure\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>GetMessage()<\/code>\ub294 Message Queue\uc5d0\uc11c Message\ub97c \uac00\uc838\uc624\uace0, <code>TranslateMessage()<\/code>\ub294 \ud0a4\ubcf4\ub4dc Message \ubcc0\ud658\uc744 \uc218\ud589\ud558\uba70, <code>DispatchMessage()<\/code>\ub294 \ud574\ub2f9 Message\ub97c Window Procedure\ub85c \uc804\ub2ec\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d GUI \ud504\ub85c\uadf8\ub7a8\uc740 \ub2e4\uc74c \uad6c\uc870\ub85c \uacc4\uc18d \ub3d9\uc791\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Message Queue -&gt; GetMessage -&gt; DispatchMessage -&gt; Window Procedure\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud504\ub85c\uadf8\ub7a8\uc774 \uc544\ubb34 \uc791\uc5c5\ub3c4 \ud558\uc9c0 \uc54a\ub294 \uac83\ucc98\ub7fc \ubcf4\uc77c \ub54c\ub3c4 \uc2e4\uc81c\ub85c\ub294 \uc774 \uad6c\uc870\ub97c \ud1b5\ud574 Windows\uc758 \uc774\ubca4\ud2b8\ub97c \uae30\ub2e4\ub9ac\uace0 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Window Procedure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Window\uc5d0 \uc804\ub2ec\ub41c Message\ub97c \uc2e4\uc81c\ub85c \ucc98\ub9ac\ud558\ub294 \ud568\uc218\uac00 Window Procedure\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcf4\ud1b5 <code>WndProc<\/code>\ub77c\uace0 \ubd80\ub978\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Message -&gt; WndProc -&gt; Message Handling\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 \ucc98\ub9ac\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WM_PAINT -&gt; \ud654\uba74 \uadf8\ub9ac\uae30\nWM_COMMAND -&gt; Control \/ Command \ucc98\ub9ac\nWM_KEYDOWN -&gt; \ud0a4\ubcf4\ub4dc \uc785\ub825 \ucc98\ub9ac\nWM_MOUSEMOVE -&gt; \ub9c8\uc6b0\uc2a4 \uc774\ub3d9 \ucc98\ub9ac\nWM_CLOSE -&gt; Window \uc885\ub8cc \uc694\uccad\nWM_DESTROY -&gt; Window \uc81c\uac70 \ucc98\ub9ac\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud544\uc694\ud55c Message\ub97c \uc9c1\uc811 \ucc98\ub9ac\ud558\uace0 \ub098\uba38\uc9c0\ub294 <code>DefWindowProc()<\/code>\uc5d0 \uc804\ub2ec\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Window \uc885\ub8cc \ud750\ub984<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c Window\uac00 \uc885\ub8cc\ub418\ub294 \uacfc\uc815\ub3c4 Message\ub97c \ud1b5\ud574 \uc774\ub8e8\uc5b4\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 \ud750\ub984\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WM_CLOSE -&gt; DestroyWindow -&gt; WM_DESTROY -&gt; PostQuitMessage -&gt; Message Loop \uc885\ub8cc -&gt; Application \uc885\ub8cc\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uad6c\uc870\ub97c \uc9c1\uc811 \ub530\ub77c\uac00 \ubcf4\uba74 Win32\uc758 \uba54\uc2dc\uc9c0 \uae30\ubc18 \uad6c\uc870\ub97c \uc774\ud574\ud558\uae30 \uc27d\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Event\uc640 Message<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uace0\uc218\uc900 UI \ud504\ub808\uc784\uc6cc\ud06c\uc5d0\uc11c\ub294 \ub2e4\uc74c\ucc98\ub7fc \uc774\ubca4\ud2b8\ub97c \uc9c1\uc811 \uc5f0\uacb0\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Button.Click -&gt; Event Handler\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c\ub294 \uc0c1\ub300\uc801\uc73c\ub85c \ub0ae\uc740 \uc218\uc900\uc5d0\uc11c Message\ub97c \ud1b5\ud574 \ucc98\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Button Click -&gt; Windows Message -&gt; WM_COMMAND -&gt; WndProc\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c WPF\ub098 WinUI \uac19\uc740 \ud504\ub808\uc784\uc6cc\ud06c\ubcf4\ub2e4 Win32 \ucf54\ub4dc\uac00 \ub354 \uc9c1\uc811\uc801\uc73c\ub85c \ub290\uaef4\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uace0\uc218\uc900 \ud504\ub808\uc784\uc6cc\ud06c\uac00 \uc81c\uacf5\ud558\ub294 Event \uc2dc\uc2a4\ud15c\uc758 \uc544\ub798\ucabd\uc5d0\uc11c Windows Message \uad6c\uc870\uac00 \ub3d9\uc791\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">GDI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c \uae30\ubcf8\uc801\uc778 2D \ud654\uba74 \ucd9c\ub825\uc744 \ub2f4\ub2f9\ud558\ub294 \ub300\ud45c\uc801\uc778 \uc2dc\uc2a4\ud15c\uc774 GDI(Graphics Device Interface)\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Window\uac00 \ub2e4\uc2dc \uadf8\ub824\uc838\uc57c \ud560 \ub54c <code>WM_PAINT<\/code>\ub97c \ud1b5\ud574 \uadf8\ub9ac\uae30 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WM_PAINT -&gt; BeginPaint -&gt; HDC -&gt; Drawing -&gt; EndPaint\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>HDC<\/code>\ub294 Device Context\ub97c \ub098\ud0c0\ub0b4\ub294 Handle\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GDI\ub97c \uc774\uc6a9\ud558\uba74 \ud14d\uc2a4\ud2b8, \uc120, \uc0ac\uac01\ud615, \ube44\ud2b8\ub9f5 \ub4f1\uc758 \uae30\ubcf8\uc801\uc778 2D \uadf8\ub798\ud53d\uc744 \uadf8\ub9b4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HDC -&gt; TextOut\nHDC -&gt; Rectangle\nHDC -&gt; LineTo\nHDC -&gt; BitBlt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc2e4\uc2dc\uac04 \uac8c\uc784 \ub80c\ub354\ub9c1\ucc98\ub7fc \ub192\uc740 \uc131\ub2a5\uc758 \uadf8\ub798\ud53d \ucc98\ub9ac\uac00 \ud544\uc694\ud55c \uacbd\uc6b0\uc5d0\ub294 GDI\ubcf4\ub2e4 DirectX \uac19\uc740 \uadf8\ub798\ud53d API\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc77c\ubc18\uc801\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Win32\uc758 \uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\ub294 GUI\ub9cc \uc81c\uacf5\ud558\ub294 API\uac00 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Windows\uac00 \uad00\ub9ac\ud558\ub294 \ub2e4\uc591\ud55c \uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4\ub97c \uc9c1\uc811 \ub2e4\ub8f0 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Win32 API -&gt; File\nWin32 API -&gt; Process\nWin32 API -&gt; Thread\nWin32 API -&gt; Memory\nWin32 API -&gt; Synchronization\nWin32 API -&gt; Window\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Win32\ub97c \uacf5\ubd80\ud558\uba74 \uc790\uc5f0\uc2a4\ub7fd\uac8c \uc6b4\uc601\uccb4\uc81c\uc758 \uad6c\uc870\uc640\ub3c4 \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">File API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud30c\uc77c \uc5ed\uc2dc Win32 API\ub97c \ud1b5\ud574 \uc9c1\uc811 \ub2e4\ub8f0 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 API\uac00 <code>CreateFile()<\/code>\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8\uc801\uc778 \ud750\ub984\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CreateFile -&gt; HANDLE -&gt; ReadFile \/ WriteFile -&gt; CloseHandle\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">C++\uc758 <code>std::fstream<\/code>\ubcf4\ub2e4 Windows \uc2dc\uc2a4\ud15c\uc5d0 \uac00\uae4c\uc6b4 \uc218\uc900\uc5d0\uc11c \ud30c\uc77c\uc744 \uc81c\uc5b4\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc2e4\ubb34\uc5d0\uc11c\ub294 \uc9c1\uc811 Handle\uc744 \uad00\ub9ac\ud558\uae30\ubcf4\ub2e4 C++ RAII Wrapper\ub098 \uc0c1\uc704 \uc218\uc900\uc758 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\ub3c4 \ub9ce\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Process\uc640 Thread<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c\ub294 Process\uc640 Thread\ub3c4 \uc9c1\uc811 \uc0dd\uc131\ud558\uace0 \uad00\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud504\ub85c\uc138\uc2a4 \uc0dd\uc131\uc5d0\ub294 <code>CreateProcess()<\/code>\uac00 \uc0ac\uc6a9\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CreateProcess -&gt; Process -&gt; Thread -&gt; Handle\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2a4\ub808\ub4dc \uc5ed\uc2dc Windows API\ub97c \ud1b5\ud574 \uc9c1\uc811 \uc0dd\uc131\ud558\uace0 \ub3d9\uae30\ud654\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Process -&gt; Thread -&gt; Synchronization\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\uae30\uc11c Event, Mutex, Semaphore \ub4f1\uc758 \ub3d9\uae30\ud654 \uac1d\uccb4\ub3c4 \ub4f1\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uc601\uc5ed\ubd80\ud130\ub294 GUI\ubcf4\ub2e4\ub294 Windows \uc2dc\uc2a4\ud15c \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0 \uac00\uae4c\uc6cc\uc9c4\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Unicode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c\ub294 \ubb38\uc790\uc5f4 API\ub97c \ubcfc \ub54c <code>A<\/code>\uc640 <code>W<\/code> \uc811\ubbf8\uc0ac\ub97c \uc790\uc8fc \ub9cc\ub098\uac8c \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CreateFileA\nCreateFileW\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>A<\/code>\ub294 ANSI \uacc4\uc5f4\uc774\uace0 <code>W<\/code>\ub294 Wide Character \uae30\ubc18\uc758 Unicode \uacc4\uc5f4\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\ub300 Windows \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c\ub294 Unicode \uae30\ubc18\uc758 <code>W<\/code> API\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc77c\ubc18\uc801\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud504\ub85c\uc81d\ud2b8 \uc124\uc815\uc5d0 \ub530\ub77c \ub9e4\ud06c\ub85c\ub97c \ud1b5\ud574 \ub2e4\uc74c\ucc98\ub7fc \uc791\uc131\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CreateFile -&gt; CreateFileW\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Windows \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \ud558\ub2e4 \ubcf4\uba74 \ubb38\uc790\uc5f4 \ud0c0\uc785\uacfc Unicode \ucc98\ub9ac \ubc29\uc2dd\ub3c4 \uc790\uc5f0\uc2a4\ub7fd\uac8c \ub9cc\ub098\uac8c \ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Win32\uc640 C++<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32 API\ub294 C \uc2a4\ud0c0\uc77c API\uc758 \ud2b9\uc131\uc774 \uac15\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c C++\uc5d0\uc11c\ub3c4 \ub2e4\uc74c\uacfc \uac19\uc740 \uc694\uc18c\ub97c \uc9c1\uc811 \ub2e4\ub8e8\uac8c \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Structure\nCallback\nPointer\nHandle\nFunction Pointer\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 Window Class\ub97c \ub4f1\ub85d\ud560 \ub54c Window Procedure\ub97c Callback\uc73c\ub85c \uc804\ub2ec\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Window Class -&gt; Window Procedure Callback\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uace0\uc218\uc900 C++ \ud504\ub808\uc784\uc6cc\ud06c\ucc98\ub7fc \uac1d\uccb4\uac00 \ubaa8\ub4e0 \uac83\uc744 \ucd94\uc0c1\ud654\ud574 \uc8fc\ub294 \uad6c\uc870\uc640 \ube44\uad50\ud558\uba74 \uc0c1\ub2f9\ud788 \uc9c1\uc811\uc801\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\uc2e0 Windows\uac00 \uc81c\uacf5\ud558\ub294 \uae30\ub2a5\uc744 \uc138\ubc00\ud558\uac8c \uc81c\uc5b4\ud560 \uc218 \uc788\ub2e4\ub294 \uc7a5\uc810\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C++\uc5d0\uc11c\ub294 \uc774\ub7ec\ud55c Win32 Handle\uc744 RAII Wrapper\ub85c \uac10\uc2f8 \ub9ac\uc18c\uc2a4 \uc218\uba85\uc744 \uc790\ub3d9\uc73c\ub85c \uad00\ub9ac\ud558\ub294 \ubc29\uc2dd\ub3c4 \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">WPF\uc640\uc758 \ucc28\uc774<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WPF\uc640 Win32\ub294 \ucd94\uc0c1\ud654 \uc218\uc900\uc774 \ub2e4\ub974\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\ub294 Windows\uc758 \ub124\uc774\ud2f0\ube0c \uae30\ub2a5\uc5d0 \uc9c1\uc811 \uac00\uae4c\uc6b4 \uad6c\uc870\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application -&gt; Win32 API -&gt; Windows\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">WPF\ub294 .NET\uacfc UI Framework\ub97c \ud1b5\ud574 \ud6e8\uc52c \ub192\uc740 \uc218\uc900\uc5d0\uc11c Windows UI\ub97c \uad6c\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>XAML -&gt; WPF -&gt; .NET -&gt; Windows\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c\ub294 \uc9c1\uc811 \ucc98\ub9ac\ud574\uc57c \ud558\ub294 Window, Message, Handle \ub4f1\uc758 \uc138\ubd80\uc0ac\ud56d\uc744 WPF\uc5d0\uc11c\ub294 Framework\uac00 \uc0c1\ub2f9 \ubd80\ubd84 \ub300\uc2e0 \ucc98\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c \uac19\uc740 \ubc84\ud2bc\uc744 \ub9cc\ub4e4\uc5b4\ub3c4 \ucf54\ub4dc\uc758 \uad6c\uc870\uc640 \ubcf5\uc7a1\ub3c4\uac00 \ud06c\uac8c \ub2e4\ub974\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Win32\uc640 \uac8c\uc784 \uac1c\ubc1c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uac8c\uc784 \uac1c\ubc1c\uc5d0\uc11c\ub294 Win32\uac00 \uc0dd\uac01\ubcf4\ub2e4 \uc790\uc8fc \ub4f1\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac8c\uc784 \uc5d4\uc9c4\uc774\ub098 \uadf8\ub798\ud53d \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c\ub3c4 Windows Window\ub97c \uc0dd\uc131\ud558\uace0 \uc785\ub825\uacfc OS \uc774\ubca4\ud2b8\ub97c \ucc98\ub9ac\ud574\uc57c \ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \uc601\uc5ed\uc5d0\uc11c Win32\uac00 \uc0ac\uc6a9\ub420 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Window -&gt; Input -&gt; File -&gt; Thread -&gt; Process -&gt; Graphics API\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">DirectX\uc640 \uc5f0\uacb0\ud560 \ub54c\ub3c4 Window\uc758 <code>HWND<\/code>\uac00 \ud544\uc694\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uadf8\ub798\ud53d API\uac00 \ub80c\ub354\ub9c1\ud560 \ub300\uc0c1 Window\ub97c \uc9c0\uc815\ud558\uae30 \uc704\ud574 <code>HWND<\/code>\ub97c \uc804\ub2ec\ud558\ub294 \uad6c\uc870\uac00 \ub4f1\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Windows \uae30\ubc18 \uac8c\uc784 \uac1c\ubc1c\uc744 \ud55c\ub2e4\uba74 Win32\uc758 \uae30\ubcf8\uc801\uc778 Window\uc640 Message \uad6c\uc870\ub97c \uc54c\uc544\ub450\ub294 \uac83\uc774 \ub3c4\uc6c0\uc774 \ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Win32\uc758 \uc804\uccb4 \ud750\ub984<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32 GUI \ud504\ub85c\uadf8\ub7a8\uc758 \uc2e4\ud589 \uad6c\uc870\ub97c \ud558\ub098\ub85c \uc815\ub9ac\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wWinMain -&gt; RegisterClass -&gt; CreateWindowEx -&gt; ShowWindow -&gt; Message Loop -&gt; WndProc -&gt; Application Logic\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\uc790 \uc785\ub825\uae4c\uc9c0 \ud3ec\ud568\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User Input -&gt; Windows -&gt; Message Queue -&gt; GetMessage -&gt; DispatchMessage -&gt; WndProc -&gt; Application Logic\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud654\uba74 \ucd9c\ub825\uae4c\uc9c0 \ud3ec\ud568\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application State -&gt; WM_PAINT -&gt; HDC -&gt; GDI -&gt; Screen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud504\ub85c\uadf8\ub7a8 \uc885\ub8cc\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WM_CLOSE -&gt; DestroyWindow -&gt; WM_DESTROY -&gt; PostQuitMessage -&gt; Message Loop \uc885\ub8cc -&gt; Application \uc885\ub8cc\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Win32\ub97c \ud558\ub098\uc758 \uad6c\uc870\ub85c \ubcf4\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\uc5d0\uc11c \uc911\uc694\ud55c \uac1c\ub150\uc744 \uc5f0\uacb0\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application -&gt; Win32 API -&gt; Windows\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">GUI\ub294 \ub2e4\uc74c \uad6c\uc870\ub85c \ub3d9\uc791\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Window -&gt; HWND -&gt; Message -&gt; Message Queue -&gt; Message Loop -&gt; WndProc\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud654\uba74 \ucd9c\ub825\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WM_PAINT -&gt; HDC -&gt; GDI -&gt; Screen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc811\uadfc\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application -&gt; Handle -&gt; OS Resource\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud30c\uc77c\uacfc \ud504\ub85c\uc138\uc2a4, \uc2a4\ub808\ub4dc\uae4c\uc9c0 \ud655\uc7a5\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Win32 API -&gt; Window \/ File \/ Process \/ Thread \/ Synchronization\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d Win32\uc758 \uc911\uc2ec\uc5d0\ub294 <strong>Windows\uac00 \uad00\ub9ac\ud558\ub294 Resource\uc640 \uc774\ub97c \ucc38\uc870\ud558\ub294 Handle<\/strong>, \uadf8\ub9ac\uace0 <strong>OS\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc804\ub2ec\ud558\ub294 Message<\/strong>\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc815\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\ub294 Windows\uc758 \ub124\uc774\ud2f0\ube0c \uae30\ub2a5\uc5d0 \uc811\uadfc\ud558\uae30 \uc704\ud55c API \uc9d1\ud569\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GUI \uac1c\ubc1c\uc5d0\uc11c \uac00\uc7a5 \uc911\uc694\ud55c \ud750\ub984\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wWinMain -&gt; Window Class -&gt; Window -&gt; Message Queue -&gt; Message Loop -&gt; WndProc -&gt; Application Logic\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\uc790 \uc785\ub825\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ub4e4\uc5b4\uc628\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User Input -&gt; Windows -&gt; Message -&gt; Message Queue -&gt; WndProc\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud654\uba74 \ucd9c\ub825\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \uc774\uc5b4\uc9c4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WM_PAINT -&gt; HDC -&gt; GDI -&gt; Screen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Windows\uac00 \uad00\ub9ac\ud558\ub294 \ub9ac\uc18c\uc2a4\ub294 Handle\uc744 \ud1b5\ud574 \uc811\uadfc\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Application -&gt; Handle -&gt; Windows Resource\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0 Win32\ub294 GUI\uc5d0\ub9cc \ud55c\uc815\ub418\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Win32 API -&gt; Window\nWin32 API -&gt; File\nWin32 API -&gt; Process\nWin32 API -&gt; Thread\nWin32 API -&gt; Synchronization\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Win32\ub97c \uacf5\ubd80\ud560 \ub54c \ubaa8\ub4e0 API\ub97c \uc678\uc6b0\ub294 \uac83\uc740 \uc758\ubbf8\uac00 \ud06c\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uba3c\uc800 <strong>Window, Handle, Message, Message Queue, Message Loop, Window Procedure<\/strong>\uc758 \uad00\uacc4\ub97c \uc774\ud574\ud558\ub294 \uac83\uc774 \uc911\uc694\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uad6c\uc870\ub97c \uc7a1\uc544\ub450\uba74 WPF\ub098 WinUI \uac19\uc740 \uace0\uc218\uc900 Windows \ud504\ub808\uc784\uc6cc\ud06c\ub97c \ubcfc \ub54c\ub3c4 \ubb34\uc5c7\uc744 \ucd94\uc0c1\ud654\ud558\uace0 \uc788\ub294\uc9c0 \ud6e8\uc52c \uba85\ud655\ud574\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d Win32\uc758 \ud575\uc2ec\uc740 API \ubaa9\ub85d\uc774 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Windows\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\uace0, \uc785\ub825\uc744 \uc804\ub2ec\ud558\uace0, Window\uc640 \uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4\ub97c \uad00\ub9ac\ud558\ub294 \uae30\ubcf8 \uad6c\uc870\ub97c \uc774\ud574\ud558\ub294 \uac83<\/strong>\uc774\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Windows\uc5d0\uc11c GUI \ud504\ub85c\uadf8\ub7a8\uc774 \uc5b4\ub5bb\uac8c \ub3d9\uc791\ud558\ub294\uc9c0 \uc81c\ub300\ub85c \uc774\ud574\ud558\ub824\uba74 Win32\ub97c \ud55c \ubc88\ucbe4 \ubcf4\ub294 \uac83\uc774 \uc88b\ub2e4. \uc694\uc998\uc740 WPF, WinUI, Qt, Electron \uac19\uc740 \uace0\uc218\uc900 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc9c0\ub9cc, Windows\uc758 \ub124\uc774\ud2f0\ube0c \uae30\ub2a5\uacfc \uc0c1\ud638\uc791\uc6a9\ud558\ub294 \uae30\ubcf8 \uad6c\uc870\uc5d0\ub294 \uc5ec\uc804\ud788 Win32 API\uac00 \uae4a\uac8c \uc5f0\uacb0\ub418\uc5b4 \uc788\ub2e4. Win32\ub97c \uacf5\ubd80\ud558\uba74 Window, Message, Handle, Window Procedure, Message Loop \uac19\uc740 \uac1c\ub150\uc774 \uc65c \uc874\uc7ac\ud558\ub294\uc9c0 \uc774\ud574\ud560 \uc218 \uc788\ub2e4. Win32\uc758 \ud575\uc2ec\uc740 API\ub97c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[],"class_list":["post-1652","post","type-post","status-publish","format-standard","hentry","category-client"],"_links":{"self":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1652"}],"version-history":[{"count":3,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1652\/revisions"}],"predecessor-version":[{"id":1940,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1652\/revisions\/1940"}],"wp:attachment":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}