{"id":176,"date":"2014-07-09T02:14:48","date_gmt":"2014-07-09T11:14:48","guid":{"rendered":"http:\/\/blog.box.kr\/?p=176"},"modified":"2014-07-09T02:14:48","modified_gmt":"2014-07-09T11:14:48","slug":"mfc-%ed%8a%b8%eb%a0%88%ec%9d%b4-%ec%95%84%ec%9d%b4%ec%bd%98tray-icon","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=176","title":{"rendered":"MFC \ud2b8\ub808\uc774 \uc544\uc774\ucf58(Tray Icon)"},"content":{"rendered":"<p><strong style=\"color: #000000;\">1. NOTIFYICONDATA \uad6c\uc870\uccb4<br \/>\n<\/strong><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 \uc0c1\ud0dc\ubc14 \uc601\uc5ed\uc5d0 \ud544\uc694\ud55c \uba54\uc2dc\uc9c0 \uc815\ubcf4\ub97c \ub0b4\ud3ec\ud55c\ub2e4.<\/span><\/p>\n<table style=\"color: #000000;\" width=\"543\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"#fff3b4\">\n<tbody>\n<tr>\n<td width=\"100%\">\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">\u00a0typedef struct _NOTIFYICONDATAA\u00a0<\/span>{<br \/>\n<span style=\"color: #3058d2;\">DWORD<\/span>\u00a0\u00a0 cdSize;\u00a0<span style=\"color: #2b8400;\">\/\/ \uad6c\uc870\uccb4\uc758 \ud06c\uae30(byte)<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">HWND<\/span>\u00a0\u00a0\u00a0 hWnd;\u00a0\u00a0<span style=\"color: #2b8400;\">\u00a0\/\/ \ud2b8\ub808\uc774\ub97c \uc18c\uc720\ud55c \ud578\ub4e4<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">UINT<\/span>\u00a0\u00a0\u00a0 uID;\u00a0\u00a0\u00a0\u00a0<span style=\"color: #2b8400;\">\/\/ \uad6c\ubd84\ud560\uc218 \uc788\ub294 ID \uac12<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">UINT<\/span>\u00a0\u00a0\u00a0 uFlags;\u00a0<span style=\"color: #2b8400;\">\/\/ \uba64\ubc84\ub4e4\uc774 \ub0b4\ud3ec\ud558\uace0 \uc788\ub294 \ub370\uc774\ud130\uc758 \ucd94\uac00 \uc815\ubcf4\ub97c \uc5b4\ub5bb\uac8c \ub098\ud0c0\ub0bc\uc9c0 \uacb0\uc815<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">UINT<\/span>\u00a0\u00a0\u00a0 uCallbackMessage;<br \/>\n<span style=\"color: #3058d2;\">HICON<\/span>\u00a0\u00a0 hIcon;<br \/>\n<span style=\"color: #3058d2;\">\u00a0#if\u00a0<\/span>(<span style=\"color: #f3709b;\">NTDDI_VERSION\u00a0<\/span>&lt;\u00a0<span style=\"color: #f3709b;\">NTDDI_WIN2K<\/span>)<br \/>\n<span style=\"color: #3058d2;\">TCHAR<\/span>\u00a0szTip[64];<br \/>\n<span style=\"color: #3058d2;\">\u00a0#endif<br \/>\n<\/span>\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">\u00a0#if\u00a0<\/span>(<span style=\"color: #f3709b;\">NTDDI_VERSION\u00a0<\/span>&gt;=\u00a0<span style=\"color: #f3709b;\">NTDDI_WIN2K<\/span>)<br \/>\n<span style=\"color: #3058d2;\">TCHAR<\/span>\u00a0\u00a0 szTip[128];<br \/>\n<span style=\"color: #3058d2;\">DWORD<\/span>\u00a0\u00a0 dwState;<br \/>\n<span style=\"color: #3058d2;\">DWORD<\/span>\u00a0\u00a0 dwStateMask;<br \/>\n<span style=\"color: #3058d2;\">TCHAR<\/span>\u00a0\u00a0 szInfo[256];<br \/>\n<span style=\"color: #3058d2;\">union<\/span>\u00a0{<br \/>\n<span style=\"color: #3058d2;\">UINT<\/span>\u00a0\u00a0\u00a0 uTimeout;<br \/>\n<span style=\"color: #3058d2;\">UINT<\/span>\u00a0\u00a0\u00a0 uVersion;\u00a0\u00a0<span style=\"color: #2b8400;\">\u00a0\/\/ Used with Shell_NotifyIcon flag NIM_SETVERSON.<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0<span style=\"color: #3058d2;\">DUMMYUNIONNAME<\/span>;<br \/>\n<span style=\"color: #3058d2;\">TCHAR<\/span>\u00a0\u00a0 szInfoTitle[64];<br \/>\n<span style=\"color: #3058d2;\">\u00a0DWORD<\/span>\u00a0\u00a0 dwInfoFlags;<br \/>\n<span style=\"color: #3058d2;\">\u00a0#endif<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">#if\u00a0<\/span>(<span style=\"color: #c8056a;\">NTDDI_VERSON<\/span>\u00a0&gt;=<span style=\"color: #f3709b;\">\u00a0<span style=\"color: #c8056a;\">NTDDI_WINXP<\/span><\/span>)<br \/>\n<span style=\"color: #3058d2;\">GUID<\/span>\u00a0\u00a0\u00a0 guidItem;<br \/>\n<span style=\"color: #3058d2;\">#endif<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">#if\u00a0<\/span>(<span style=\"color: #f3709b;\"><span style=\"color: #c8056a;\">NTDDI_VERSON<\/span>\u00a0<\/span>&gt;=\u00a0<span style=\"color: #c8056a;\">NTDDI_VISTA<\/span>)<br \/>\n<span style=\"color: #3058d2;\">HICON<\/span>\u00a0\u00a0 hBalloonIcon;<br \/>\n<span style=\"color: #3058d2;\">#endif<br \/>\n<\/span>\u00a0\u00a0\u00a0 }<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><br style=\"color: #000000;\" \/><strong style=\"color: #000000;\">2. ::Shell_NotifyIcon() API \ud568\uc218<br \/>\n<\/strong><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 \uc774 \uba54\uc11c\ub4dc\ub294 \uc791\uc5c5\ud45c\uc2dc\uc904\uc5d0 \uba54\uc2dc\uc9c0\ub97c Send\ud574\uc8fc\ub294 \uc5ed\ud560\uc744 \ud55c\ub2e4. \uc6d0\ud615\uc740 \uc544\ub798\uc640 \uac19\ub2e4.<\/span><\/p>\n<table style=\"color: #000000;\" width=\"545\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"#fff3b4\">\n<tbody>\n<tr>\n<td width=\"100%\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">BOOL<\/span>\u00a0<span style=\"color: #8c3c04;\">Shell_NotifyIcon\u00a0<\/span>(<br \/>\n<span style=\"color: #3058d2;\">\u00a0DWORD<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dwMessage,<br \/>\n<span style=\"color: #3058d2;\">PNOTIFYICONDATA<\/span>\u00a0lpdata;<br \/>\n);<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 -. dwMessage : NIM_ADD, MIN_MODIFY, NIM_DELETE\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc744\u00a0<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \ucd94\uac00, \uc218\uc815, \uc0ad\uc81c \ud560 \uc218 \uc788\uac8c \ud574\uc900\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 -. lpdata : NOTIFYICONDATA \uad6c\uc870\uccb4\ub97c \ud1b5\ud574 \uc815\ubcf4\ub97c \uc804\ub2ec\ud55c\ub2e4.<\/span><br style=\"color: #000000;\" \/><br style=\"color: #000000;\" \/><strong style=\"color: #000000;\">3. \ud2b8\ub808\uc774 \uc544\uc774\ucf58 \uc0ac\uc6a9 \uc608\uc81c<br \/>\n<span id=\"callbacknestcodeoopmancom66768\"><\/span><\/strong><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 -. ESC \ud0a4\ub97c \ub204\ub97c\uacbd\uc6b0 \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc73c\ub85c \ub4f1\ub85d\ud55c\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 -. \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc744 \uc67c\ucabd\ubc84\ud2bc \ub354\ube14\ud074\ub9ad\ud558\uba74 \uc815\uc0c1\uc801\uc73c\ub85c \ud65c\uc131\ud654\ub41c\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 -. \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc5d0\uc11c \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc744 \ub204\ub97c \uacbd\uc6b0 \ud31d\uc5c5 \uba54\ub274\uac00 \ub72c\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0<\/span><strong style=\"color: #000000;\">1) PreTranslateMessage \uba54\uc11c\ub4dc \uc0ac\uc6a9\ud574 ESC \ud0a4\ub97c \ub204\ub97c\uacbd\uc6b0 \ud2b8\ub808\uc774\ud654<br \/>\n<\/strong><\/p>\n<table style=\"color: #000000;\" width=\"554\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"#fff3b4\">\n<tbody>\n<tr>\n<td width=\"100%\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">\u00a0BOOL CMainFrame<\/span>::<span style=\"color: #8c3c04;\">PreTranslateMessage<\/span>(<span style=\"color: #3058d2;\">MSG<\/span>* pMsg)<br \/>\n{<br \/>\n<span style=\"color: #3058d2;\">\u00a0if\u00a0<\/span>(pMsg-&gt;message ==\u00a0<span style=\"color: #c8056a;\">WM_KEYDOWN<\/span>)<br \/>\n{<br \/>\n<span style=\"color: #3058d2;\">switch<\/span>\u00a0(pMsg-&gt;wParam)<br \/>\n{<br \/>\n<span style=\"color: #3058d2;\">case<\/span>\u00a0<span style=\"color: #c8056a;\">VK_ESCAPE\u00a0<\/span>:<br \/>\n{<br \/>\n<span style=\"color: #2b8400;\">\/\/ \ud2b8\ub808\uc774 \uc544\uc774\ucf58<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">NOTIFYICONDATA<\/span>\u00a0nid;<br \/>\n<span style=\"color: #c8056a;\">\u00a0ZeroMemory<\/span>(&amp;nid,\u00a0<span style=\"color: #3058d2;\">sizeof<\/span>(nid));<br \/>\nnid.cdSize =\u00a0<span style=\"color: #3058d2;\">sizeof<\/span>(nid);<br \/>\nnid.uID = 0;<br \/>\nnid.hWnd =\u00a0<span style=\"color: #8c3c04;\">GetSafeHwnd<\/span>();<\/p>\n<p>nid.uFlags =\u00a0<span style=\"color: #c8056a;\">NIF_ICON\u00a0<\/span>|<span style=\"color: #c8056a;\">\u00a0NIF_TIP\u00a0<\/span>|\u00a0<span style=\"color: #c8056a;\">NIF_MESSAGE<\/span>;<br \/>\nnid.hIcon =\u00a0<span style=\"color: #8c3c04;\">AfxGetApp<\/span>()-&gt;<span style=\"color: #8c3c04;\">LoadIcon<\/span>(<span style=\"color: #c8056a;\">IDR_MAINFRAME<\/span>);<br \/>\n<span style=\"color: #c8056a;\">\u00a0lstrcpy<\/span>(nid.szTip,\u00a0<span style=\"color: #8c3c04;\">L&#8221;HOme Networking&#8221;<\/span>);<br \/>\nnid.uCallbackMessage =\u00a0<span style=\"color: #c8056a;\">WM_TRAY_NOTIFICATION<\/span>;<\/p>\n<p><span style=\"color: #3058d2;\">\u00a0BOOL\u00a0<\/span>bRet = ::<span style=\"color: #8c3c04;\">Shell_NotifyIcon<\/span>(<span style=\"color: #c8056a;\">NIM_ADD<\/span>, &amp;nid);<\/p>\n<p><span style=\"color: #8c3c04;\">AfxGetApp<\/span>()-&gt;m_pMainWnd-&gt;<span style=\"color: #8c3c04;\">ShowWindow<\/span>(<span style=\"color: #c8056a;\">SW_HIDE<\/span>);<br \/>\n}<br \/>\n<span style=\"color: #3058d2;\">\u00a0break<\/span>;<br \/>\n}<br \/>\n}<br \/>\n<span style=\"color: #3058d2;\">return CFrameWnd<\/span>::<span style=\"color: #8c3c04;\">PreTranslateMessage<\/span>(pMsg);<br \/>\n}<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uc704 \uc18c\uc2a4\ub294 MainFrame\uc5d0 \uad6c\ud604\ud55c \uc18c\uc2a4\uc774\ub2e4. \uadf8\ub7fc PreTranslateMessage()\uc758 \uc124\uba85\uc744 \uc0dd\ub7b5\ud558\uace0<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc744 \ucd94\uac00\ud558\ub294 \ubd80\ubd84\uc744 \uc124\uba85\ud558\ub3c4\ub85d \ud558\uaca0\ub2e4.<\/span><\/p>\n<table style=\"color: #000000;\" width=\"554\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"#fff3b4\">\n<tbody>\n<tr>\n<td width=\"100%\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #2b8400;\">\/\/ \ud2b8\ub808\uc774 \uc544\uc774\ucf58<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">NOTIFYICONDATA<\/span>\u00a0nid;<br \/>\n<span style=\"color: #c8056a;\">ZeroMemory<\/span>(&amp;nid,\u00a0<span style=\"color: #3058d2;\">sizeof<\/span>(nid));<br \/>\nnid.cdSize =<span style=\"color: #3058d2;\">\u00a0sizeof<\/span>(nid);<br \/>\nnid.uID = 0;<br \/>\nnid.hWnd =\u00a0<span style=\"color: #8c3c04;\">GetSafeHwnd<\/span>();<\/p>\n<p>nid.uFlags =\u00a0<span style=\"color: #c8056a;\">NIF_ICON\u00a0<\/span>|\u00a0<span style=\"color: #c8056a;\">NIF_TIP\u00a0<\/span>|\u00a0<span style=\"color: #c8056a;\">NIF_MESSAGE<\/span>;<br \/>\nnid.hIcon =<span style=\"color: #8c3c04;\">\u00a0AfxGetApp<\/span>()-&gt;<span style=\"color: #8c3c04;\">LoadIcon<\/span>(<span style=\"color: #c8056a;\">IDR_MAINFRAME<\/span>);<br \/>\n<span style=\"color: #c8056a;\">\u00a0lstrcpy<\/span>(nid.szTip,\u00a0<span style=\"color: #8c3c04;\">L&#8221;HOme Networking&#8221;<\/span>);<br \/>\nnid.uCallbackMessage =\u00a0<span style=\"color: #c8056a;\">WM_TRAY_NOTIFICATION<\/span>;<\/p>\n<p><span style=\"color: #3058d2;\">BOOL<\/span>\u00a0bRet = ::<span style=\"color: #8c3c04;\">Shell_NotifyIcon<\/span>(<span style=\"color: #c8056a;\">NIM_ADD<\/span>, &amp;nid);<\/p>\n<p><span style=\"color: #8c3c04;\">\u00a0AfxGetApp<\/span>()-&gt;m_pMainWnd-&gt;<span style=\"color: #8c3c04;\">ShowWindow<\/span>(<span style=\"color: #c8056a;\">SW_HIDE<\/span>);<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Shell_NotifyIcon\uc5d0\uc11c \uc0ac\uc6a9\ud55c NOTIFYICONDATA \uad6c\uc870\uccb4 \uc120\uc5b8 \ubc0f \ucd08\uae30\ud654\ub97c \ud574\uc900\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -. nid.uFlags\ub294 NIF_ICON | NIF_TIP | NIF_MESSAGE\ub4f1\uc758 \uc544\uc774\ucf58, \ud234\ud301, \uba54\uc2dc\uc9c0 \uc0ac\uc6a9\uc744 \uc9c0\uc815.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -. nid.hIcon\uc740 App\uc758 \uc544\uc774\ucf58\uc744 \ub85c\ub4dc.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -. nid.szTip\uc740 \ud234\ud301\uc73c\ub85c \ub098\uc62c \ubb38\uc790\uc5f4\uc744 \ub2f4\ub294\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -. nid.uCallbackMessage\ub294 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uba54\uc2dc\uc9c0\uc778 WM_TRAY_NOTIFICATION\uc73c\ub85c \uc9c0\uc815.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ::Shell_NotifyIcon\uc5d0 NIM_ADD(\uc544\uc774\ucf58 \ucd94\uac00) \uc18d\uc131\uc744 \uc9c0\uc815\ud558\uace0, \uc124\uc815\ud55c NOTIFYICONDATA \uad6c\uc870\uccb4 \uc815\ubcf4\ub97c \ub118\uae34\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \ub9c8\uc9c0\ub9c9\uc73c\ub85c \ud604\uc7ac \uc708\ub3c4\uc6b0\ub97c \uc228\uae34\ub2e4.<\/span><br style=\"color: #000000;\" \/><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0<\/span><strong style=\"color: #000000;\">\u00a02) \uc0ac\uc6a9\uc790 \uba54\uc2dc\uc9c0\ub97c \ucd94\uac00<br \/>\n<\/strong><\/p>\n<table style=\"color: #000000;\" width=\"553\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"#fff3b4\">\n<tbody>\n<tr>\n<td width=\"100%\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -. MainFram.h<br \/>\n<span style=\"color: #3058d2;\">protected :<br \/>\n<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c8056a;\">afx_msg\u00a0<\/span><span style=\"color: #3058d2;\">int<\/span>\u00a0<span style=\"color: #8c3c04;\">OnCreate<\/span>(<span style=\"color: #3058d2;\">LPCREATESTRUCT<\/span>\u00a0lpCreateStruct);<br \/>\n<span style=\"color: #c8056a;\">afx_msg\u00a0<\/span><span style=\"color: #3058d2;\">LRESULT<\/span>\u00a0<span style=\"color: #8c3c04;\">OnTrayNotifycaton<\/span>(<span style=\"color: #3058d2;\">WPARAM<\/span>,\u00a0<span style=\"color: #3058d2;\">LPARAM<\/span>);<br \/>\n<span style=\"color: #c8056a;\">DECLARE_MESSAGE_MAP<\/span>()<\/p>\n<p>-. MainFram.cpp<br \/>\n<span style=\"color: #3058d2;\">#define<\/span>\u00a0<span style=\"color: #c8056a;\">WM_TRAY_NOTIFYCATON\u00a0<\/span><span style=\"color: #c8056a;\">WM_APP\u00a0<\/span>+ 1<\/p>\n<p><span style=\"color: #2b8400;\">\/\/ CMainFrame<br \/>\n<\/span><br \/>\n<span style=\"color: #c8056a;\">IMPLEMENT_DYNCREATE<\/span>(<span style=\"color: #3058d2;\">CMainFrame<\/span>,\u00a0<span style=\"color: #3058d2;\">CFrameWnd<\/span>)<\/p>\n<p><span style=\"color: #c8056a;\">BEGIN_MESSAGE_MAP<\/span>(<span style=\"color: #3058d2;\">CMainFrame<\/span>,\u00a0<span style=\"color: #3058d2;\">CFrameWnd<\/span>)<br \/>\n<span style=\"color: #c8056a;\">ON_WM_CREATE<\/span>()<br \/>\n<span style=\"color: #c8056a;\">ON_MESSAGE<\/span>(<span style=\"color: #c8056a;\">WM_TRAY_NOTIFYCATON<\/span>,\u00a0<span style=\"color: #8c3c04;\">OnTrayNotifycaton<\/span>)<br \/>\n<span style=\"color: #c8056a;\">END_MESSAGE_MAP<\/span>()<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uc815\uc758\ud558\ub294 WM_APP\ubd80\ud130 \uc2dc\uc791\ud558\uba74 \ub0b4\ubd80\uc5d0\uc11c\ub294 \uc720\uc77c\ud55c \uba54\uc2dc\uc9c0 \uac12\uc774\uc5b4\uc57c\ud55c\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uadf8\ub807\uae30 \ub54c\ubb38\uc5d0 WM_TRAY_NOTIFYCATON\uc740 WM_APP + 1 \uce58\ud658\ud55c\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uadf8\ub9ac\uace0 \uc0ac\uc6a9\uc790 \uba54\uc2dc\uc9c0\uc758 \uacbd\uc6b0 WM_COMMNAD\ub97c \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 \uba54\uc2dc\uc9c0 \ub9f5\uc5d0\uc11c ONMESSAGE \ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uadf8\ub9ac\uace0 OnTraynotifycaton(WPARAM wParam, LPARAM lParam)\uc758 \uc6cc\u3155\u3134\ud615\uc744 \uac00\uc9c4 \uba54\uc11c\ub4dc\ub97c \uc0dd\uc131\ud558\uace0 \uc9c0\uc815\ud55c\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 WPARAM\uacfc LPARAM\uc740 SendMessage()\ub098 PostMessage()\ub97c \uc0ac\uc6a9\ud574 \uba54\uc2dc\uc9c0\ub97c \ubc1b\uc744\ub54c \uc0ac\uc6a9\ud55c\ub2e4.<\/span><\/p>\n<table style=\"color: #000000;\" width=\"557\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"#fff3b4\">\n<tbody>\n<tr>\n<td width=\"100%\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #3058d2;\">LRESULT\u00a0<\/span><span style=\"color: #3058d2;\">CMainFrame<\/span>::<span style=\"color: #8c3c04;\">OnTrayNotifycation<\/span>(<span style=\"color: #3058d2;\">WPARAM\u00a0<\/span>wParam,\u00a0<span style=\"color: #3058d2;\">LPARAM\u00a0<\/span>lParam)<br \/>\n{<br \/>\n<span style=\"color: #3058d2;\">switch\u00a0<\/span>(lParam)<br \/>\n{<br \/>\n<span style=\"color: #3058d2;\">case\u00a0<\/span><span style=\"color: #c8056a;\">WM_RBUTTONDOWN\u00a0<\/span>:<br \/>\n{<br \/>\n<span style=\"color: #3058d2;\">CPoint\u00a0<\/span>ptMouse;<br \/>\n::<span style=\"color: #8c3c04;\">GetCursorPos<\/span>(&amp;ptMouse);<\/p>\n<p><span style=\"color: #3058d2;\">CMenu\u00a0<\/span>menu;<br \/>\nmenu.<span style=\"color: #8c3c04;\">LoadMenu<\/span>(<span style=\"color: #c8056a;\">IDR_MAINFRAME<\/span>);<br \/>\n<span style=\"color: #3058d2;\">CMenu\u00a0<\/span>*pMenu = menu.<span style=\"color: #8c3c04;\">GetSubMenu<\/span>(0);<br \/>\npMenu-&gt;<span style=\"color: #8c3c04;\">TrackPopupMenu<\/span>(<span style=\"color: #c8056a;\">TPM_LEFTALIGN<\/span>\u00a0|\u00a0<span style=\"color: #c8056a;\">TPM_RIGHTBUTTON<\/span>,<br \/>\nptMouse.x, ptMouse.y,\u00a0<span style=\"color: #8c3c04;\">AfxGetMainWnd<\/span>());<br \/>\n}<br \/>\n<span style=\"color: #3058d2;\">break<\/span>;<br \/>\n<span style=\"color: #3058d2;\">case\u00a0<\/span><span style=\"color: #c8056a;\">WM_LBUTTONDBLCLK\u00a0<\/span>:<br \/>\n{<br \/>\n<span style=\"color: #3058d2;\">NOTIFYICONDATA\u00a0<\/span>nid;<br \/>\n<span style=\"color: #c8056a;\">ZeroMemory<\/span>(&amp;nid,\u00a0<span style=\"color: #3058d2;\">sizeof<\/span>(nid));<br \/>\nnid.cbSize =\u00a0<span style=\"color: #3058d2;\">sizeof<\/span>(nid);<br \/>\nnid.uID = 0;<br \/>\nnid.hWnd =\u00a0<span style=\"color: #8c3c04;\">GetSafeHwnd<\/span>();<\/p>\n<p><span style=\"color: #3058d2;\">BOOL\u00a0<\/span>bRet = ::<span style=\"color: #8c3c04;\">Shell_NotifyIcon<\/span>(<span style=\"color: #c8056a;\">NIM_DELETE<\/span>, &amp;nid);<br \/>\nif (!bRet)<br \/>\n{<br \/>\n<span style=\"color: #8c3c04;\">AfxMessageBox<\/span>(<span style=\"color: #8c3c04;\">L&#8221;\ud2b8\ub808\uc774 \uc544\uc774\ucf58 \uc81c\uac70 \uc2e4\ud328!&#8221;<\/span>);<br \/>\n<span style=\"color: #3058d2;\">return\u00a0<\/span>-1;<br \/>\n}<br \/>\n<span style=\"color: #8c3c04;\">AfxGetApp<\/span>()-&gt;m_pMainWnd-&gt;<span style=\"color: #8c3c04;\">ShowWindow<\/span>(<span style=\"color: #c8056a;\">SW_SHOW<\/span>);<br \/>\n}<br \/>\n<span style=\"color: #3058d2;\">break<\/span>;<br \/>\n}<br \/>\n<span style=\"color: #3058d2;\">return\u00a0<\/span>1;<br \/>\n}<br \/>\n}<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -. WM_RBUTTONDOWN \uba54\uc2dc\uc9c0\ub294 \ud604\uc7ac\uc758 \ucee4\uc11c \uc704\uce58\ub97c \uc54c\uc544\uc640 \ud2b8\ub808\uc774 \uc544\uc774\ucf58 \uc704\uc5d0 \uc774\ubca4\ud2b8\uac00 \uc77c\uc5b4\ub0a0 \uacbd\uc6b0\u00a0<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uc0dd\uc131\ub418\uc5b4 \uc788\ub294 \uccab\ubc88\uc9f8 \uc778\ub371\uc2a4 \uba54\ub274\ub97c \ud65c\uc131\ud654 \uc2dc\ud0a8\ub2e4.<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -. WM_LBUTTONDBLCLK \uba54\uc2dc\uc9c0\ub294 \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc758 uID\ub97c \uc9c0\uc815\ud558\uace0 \ud578\ub4e4\uc744 \uc5bb\uc5b4\uc640 \ub354\ube14\ud074\ub9ad\uc2dc \ud2b8\ub808\uc774\uc544\uc774\ucf58\uc744\u00a0<\/span><br style=\"color: #000000;\" \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uc81c\uac70\ud558\uace0 \uc708\ub3c4\uc6b0\ub97c \ud65c\uc131\ud654 \uc2dc\ucf1c\uc900\ub2e4.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. NOTIFYICONDATA \uad6c\uc870\uccb4 \u00a0\u00a0\u00a0 \uc0c1\ud0dc\ubc14 \uc601\uc5ed\uc5d0 \ud544\uc694\ud55c \uba54\uc2dc\uc9c0 \uc815\ubcf4\ub97c \ub0b4\ud3ec\ud55c\ub2e4. \u00a0\u00a0\u00a0\u00a0\u00a0typedef struct _NOTIFYICONDATAA\u00a0{ DWORD\u00a0\u00a0 cdSize;\u00a0\/\/ \uad6c\uc870\uccb4\uc758 \ud06c\uae30(byte) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0HWND\u00a0\u00a0\u00a0 hWnd;\u00a0\u00a0\u00a0\/\/ \ud2b8\ub808\uc774\ub97c \uc18c\uc720\ud55c \ud578\ub4e4 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0UINT\u00a0\u00a0\u00a0 uID;\u00a0\u00a0\u00a0\u00a0\/\/ \uad6c\ubd84\ud560\uc218 \uc788\ub294 ID \uac12 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0UINT\u00a0\u00a0\u00a0 uFlags;\u00a0\/\/ \uba64\ubc84\ub4e4\uc774 \ub0b4\ud3ec\ud558\uace0 \uc788\ub294 \ub370\uc774\ud130\uc758 \ucd94\uac00 \uc815\ubcf4\ub97c \uc5b4\ub5bb\uac8c \ub098\ud0c0\ub0bc\uc9c0 \uacb0\uc815 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0UINT\u00a0\u00a0\u00a0 uCallbackMessage; HICON\u00a0\u00a0 hIcon; \u00a0#if\u00a0(NTDDI_VERSION\u00a0&lt;\u00a0NTDDI_WIN2K) TCHAR\u00a0szTip[64]; \u00a0#endif \u00a0\u00a0\u00a0\u00a0#if\u00a0(NTDDI_VERSION\u00a0&gt;=\u00a0NTDDI_WIN2K) TCHAR\u00a0\u00a0 szTip[128]; DWORD\u00a0\u00a0 dwState; DWORD\u00a0\u00a0 dwStateMask; TCHAR\u00a0\u00a0 szInfo[256]; union\u00a0{ UINT\u00a0\u00a0\u00a0 uTimeout; UINT\u00a0\u00a0\u00a0 uVersion;\u00a0\u00a0\u00a0\/\/ Used with Shell_NotifyIcon flag NIM_SETVERSON. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0DUMMYUNIONNAME; TCHAR\u00a0\u00a0 szInfoTitle[64]; \u00a0DWORD\u00a0\u00a0 dwInfoFlags; \u00a0#endif \u00a0\u00a0\u00a0\u00a0#if\u00a0(NTDDI_VERSON\u00a0&gt;=\u00a0NTDDI_WINXP) GUID\u00a0\u00a0\u00a0 guidItem; #endif \u00a0\u00a0\u00a0\u00a0#if\u00a0(NTDDI_VERSON\u00a0&gt;=\u00a0NTDDI_VISTA) HICON\u00a0\u00a0 hBalloonIcon; #endif \u00a0\u00a0\u00a0 } 2. ::Shell_NotifyIcon() API \ud568\uc218 \u00a0\u00a0\u00a0 \uc774 \uba54\uc11c\ub4dc\ub294 \uc791\uc5c5\ud45c\uc2dc\uc904\uc5d0 \uba54\uc2dc\uc9c0\ub97c Send\ud574\uc8fc\ub294 \uc5ed\ud560\uc744 \ud55c\ub2e4. \uc6d0\ud615\uc740 \uc544\ub798\uc640 \uac19\ub2e4. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0BOOL\u00a0Shell_NotifyIcon\u00a0( \u00a0DWORD\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dwMessage, PNOTIFYICONDATA\u00a0lpdata; ); \u00a0\u00a0\u00a0 -. dwMessage : NIM_ADD, MIN_MODIFY, NIM_DELETE\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc744\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \ucd94\uac00, \uc218\uc815, \uc0ad\uc81c \ud560 \uc218 \uc788\uac8c \ud574\uc900\ub2e4.\u00a0\u00a0\u00a0 -. lpdata : NOTIFYICONDATA \uad6c\uc870\uccb4\ub97c \ud1b5\ud574 \uc815\ubcf4\ub97c \uc804\ub2ec\ud55c\ub2e4.3. \ud2b8\ub808\uc774 \uc544\uc774\ucf58 \uc0ac\uc6a9 \uc608\uc81c \u00a0\u00a0\u00a0 -. ESC \ud0a4\ub97c \ub204\ub97c\uacbd\uc6b0 \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc73c\ub85c \ub4f1\ub85d\ud55c\ub2e4.\u00a0\u00a0\u00a0 -. \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc744 \uc67c\ucabd\ubc84\ud2bc \ub354\ube14\ud074\ub9ad\ud558\uba74 \uc815\uc0c1\uc801\uc73c\ub85c \ud65c\uc131\ud654\ub41c\ub2e4.\u00a0\u00a0\u00a0 -. \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc5d0\uc11c \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc744 \ub204\ub97c \uacbd\uc6b0 \ud31d\uc5c5 \uba54\ub274\uac00 \ub72c\ub2e4.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01) PreTranslateMessage \uba54\uc11c\ub4dc \uc0ac\uc6a9\ud574 ESC \ud0a4\ub97c \ub204\ub97c\uacbd\uc6b0 \ud2b8\ub808\uc774\ud654 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { \u00a0if\u00a0(pMsg-&gt;message ==\u00a0WM_KEYDOWN) { switch\u00a0(pMsg-&gt;wParam) { case\u00a0VK_ESCAPE\u00a0: { \/\/ \ud2b8\ub808\uc774 \uc544\uc774\ucf58 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NOTIFYICONDATA\u00a0nid; \u00a0ZeroMemory(&amp;nid,\u00a0sizeof(nid)); nid.cdSize =\u00a0sizeof(nid); nid.uID = 0; nid.hWnd =\u00a0GetSafeHwnd(); nid.uFlags =\u00a0NIF_ICON\u00a0|\u00a0NIF_TIP\u00a0|\u00a0NIF_MESSAGE; nid.hIcon =\u00a0AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME); \u00a0lstrcpy(nid.szTip,\u00a0L&#8221;HOme Networking&#8221;); nid.uCallbackMessage =\u00a0WM_TRAY_NOTIFICATION; \u00a0BOOL\u00a0bRet = ::Shell_NotifyIcon(NIM_ADD, &amp;nid); AfxGetApp()-&gt;m_pMainWnd-&gt;ShowWindow(SW_HIDE); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[9,7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-2Q","jetpack-related-posts":[{"id":305,"url":"https:\/\/blog.box.kr\/?p=305","url_meta":{"origin":176,"position":0},"title":"[MFC] \ub0b4\ubd80 \ucc3d\ub07c\ub9ac \uba54\uc2dc\uc9c0 \uc1a1\uc218\uc2e0","date":"2014-08-07","format":false,"excerpt":"\ud074\ub798\uc2a4\uac04 \ub370\uc774\ud130 \uc804\ub2ec\uc744 \ud558\ub294 \ubc29\ubc95\uc774 \ubb34\uc5c7\uc774 \uc788\uc744\uae4c. 1. \uc804\uc5ed\ubcc0\uc218 2. \ud5e4\ub354 include \ud6c4 \ubcc0\uc218 \uc811\uadfc 3. SendMessage SendMessage\ub97c \uc774\uc6a9\ud558\uba74 \ud074\ub798\uc2a4\uac04 \ub370\uc774\ud130 \uc804\ub2ec\uc774 \uc6a9\uc774\ud568\uc744 \uc54c\uace0, \uc0ac\uc6a9\ud574\ubcf4\uc558\ub2e4(\uba87\ubc88\uc758 \uc0bd\uc9c8\uacfc \ud568\uaed8...) ? 1 2 3 4 5 6 7 8 9 10 11 12 LRESULT SendMessage( \u00a0\u00a0\u00a0\u00a0UINT message, \u00a0\u00a0\u00a0\u00a0WPARAM wParam = 0, \u00a0\u00a0\u00a0\u00a0LPARAM lParam\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":248,"url":"https:\/\/blog.box.kr\/?p=248","url_meta":{"origin":176,"position":1},"title":"[\uac1c\ubc1c\/VC++] WebBrowser Control \uc774\ubca4\ud2b8 \uc5f0\uacb0 &#8211; C++","date":"2014-07-23","format":false,"excerpt":"IT\/\uac1c\ubc1c\u00a02011\/02\/10 12:12 [\uac1c\ubc1c\/VC++] WebBrowser Control \uc774\ubca4\ud2b8 \uc5f0\uacb0 - C++ WebBrowser Control IDispatch IWebBrowser2 .ReadyState READYSTATE_COMPLETE .Navigate2() .get_Document() \/\/ IDispatch -> IHTMLDocument2 .get_StatusText() on DownloadBegin on DocumentComplete on DownloadComplete IOleObject \u00a0 IHTMLWindow2 IHTMLDocument2 .get_all() .get_parentWindow() \/\/ IHTMLWindow2 IHTMLElementCollection .item() .tags \/\/ IHTMLElementCollection IHTMLElement a connectable object IConnectionPointContainer .FindConnectionPoint() \/\/ DHTMLElementEvents2 DHTMLElementEvents2\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":174,"url":"https:\/\/blog.box.kr\/?p=174","url_meta":{"origin":176,"position":2},"title":"[VC++] Window\uc758 \ucd08\uae30 \ud06c\uae30\uc640 \uc704\uce58 \uc815\ud574\uc8fc\uae30","date":"2014-07-09","format":false,"excerpt":"Windows \uc6a9 \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8\uc744 \ub9cc\ub4e4 \uacbd\uc6b0\uc5d0, console \ud504\ub85c\uadf8\ub7a8\uc774 \uc544\ub2cc\uacbd\uc6b0\uc5d0\ub294 \uc2e4\ud589\uc2dc\uc5d0 window\uc758 \ucd08\uae30 \uc704\uce58\uc640 \ud06c\uae30\ub97c \uc815\ud574\uc8fc\uace0 \uc2f6\uc740 \uacbd\uc6b0\uac00 \uc788\uc744\uac83\uc774\ub2e4. \ub098\ub294 \uba87\uc77c\uc804\uc5d0 \uc788\uc5c8\ub2e4~ \uc27d\uac8c \ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud558\uace0\uc790 \ud55c\ub2e4. \uc6b0\uc120 \ucf54\ub4dc\ub97c \ub17c\ud558\uae30\uc5d0 \uc55e\uc11c\uc11c \ub0b4\uac00 \uc0ac\uc6a9\ud55c \ubc29\ubc95\uc744 \uac04\ub7b5\ud788 \uc124\uba85\ud558\uc790\uba74, MainFrame class\uc5d0 WM_SHOWWINDOW message\uc5d0 \ub300\ud55c event handler\ub97c \ub9cc\ub4e4\uc5b4\uc8fc\uc5b4 \uadf8 \uc548\uc5d0\uc11c WINDOWPLACEMENT structure\ub97c \uc774\uc6a9\ud588\ub2e4. void\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":164,"url":"https:\/\/blog.box.kr\/?p=164","url_meta":{"origin":176,"position":3},"title":"\ud504\ub85c\uc138\uc2a4 \uac04\uc758 \ud1b5\uc2e0","date":"2014-07-08","format":false,"excerpt":"\ud504\ub85c\uc138\uc2a4 \uac04\uc758 \ud1b5\uc2e0(IPC)\uc740 \ud504\ub85c\uc138\uc2a4 \uac04\uc5d0 \uc815\ubcf4\ub97c \uc8fc\uace0 \ubc1b\uc744 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 \ud1b5\uc2e0 \uae30\ubc95\uc785\ub2c8\ub2e4. \ud504\ub85c\uc138\uc2a4 \uac04\uc758 \ud1b5\uc2e0 \ubc29\ubc95\uc740 \uc11c\ub85c \uac04\uc5d0 \uba54\uc2dc\uc9c0\ub97c \uc804\ub2ec\ud558\ub294 \ubc29\ubc95\uacfc \uacf5\uc720 \uba54\ubaa8\ub9ac\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95 \uadf8\ub9ac\uace0 \ud074\ub9bd\ubcf4\ub4dc\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95 \ub4f1\uc774 \uc788\uc2b5\ub2c8\ub2e4. 1. \ud504\ub85c\uc138\uc2a4 \uc0ac\uc774\uc758 \uba54\uc2dc\uc9c0 \uc804\ub2ec 1)\ub3d9\uc77c\ud55c \ud504\ub85c\uadf8\ub7a8\uc774 \uc5ec\ub7ec \uac1c \uc2e4\ud589 \uc911\uc77c \ub54c \uba54\uc2dc\uc9c0 \uc804\uc1a1 RegisterWindowMessage \uc774\uc6a9 \ud504\ub85c\uc138\uc2a4 \ub610\ub294\u2026","rel":"","context":"In &quot;MFC &amp; WINDOWS&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":162,"url":"https:\/\/blog.box.kr\/?p=162","url_meta":{"origin":176,"position":4},"title":"[Tip] WM_COPYDATA \uba54\uc2dc\uc9c0\ub85c \ud504\ub85c\uadf8\ub7a8\uac04\uc5d0 \ub370\uc774\ud130 \uc8fc\uace0\ubc1b\ub294 \ubc29\ubc95","date":"2014-07-08","format":false,"excerpt":"\ud2b8\ub799\ubc31 \uc8fc\uc18c : http:\/\/www.tipssoft.com\/bulletin\/tb.php\/FAQ\/319 \ud301\uc2a4\uc18c\ud504\ud2b8\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ud504\ub85c\uadf8\ub798\ubc0d\uacfc \uad00\ub828\ub41c \uc790\ub8cc\ub098 \uc815\ubcf4\ub4e4\uc744 \ubb34\ub2e8\uc73c\ub85c \ubcf5\uc81c\ud558\uac70\ub098 \uac8c\uc7ac\ud558\ub294 \ud589\uc704\ub294 \uc0c1\ud638\uac04\uc758 \uc2e0\ub8b0\ub97c \ubb34\ub108\ub728\ub9ac\ub294 \ud589\uc704\uc774\uba70, \ubc95\uc801\uc778 \ubb38\uc81c\ub97c \uc57c\uae30\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uac01\ubcc4\ud55c \uc8fc\uc758\ub97c \ub2f9\ubd80\ub4dc\ub9bd\ub2c8\ub2e4. * \ud301\uc2a4\uc18c\ud504\ud2b8 \uc800\uc791\uad8c \uc815\ucc45 \ubcf4\uae30 - http:\/\/www.tipssoft.com\/bulletin\/tb.php\/FAQ\/637 \uc774 \uc790\ub8cc\ub4e4\uc740 \ud301\uc2a4\uc18c\ud504\ud2b8\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 [ \uc54c\uc9dc\ubc30\uae30 ] \ud504\ub85c\uadf8\ub7a8\uc744 \uc774\uc6a9\ud558\uba74 \ub354 \ud3b8\ub9ac\ud558\uac8c \ubcfc\uc218 \uc788\uc2b5\ub2c8\ub2e4. * \uc54c\uc9dc\ubc30\uae30 \ud504\ub85c\uadf8\ub7a8 \ubc1b\uae30\u2026","rel":"","context":"In &quot;\uc77c\uc0c1&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":198,"url":"https:\/\/blog.box.kr\/?p=198","url_meta":{"origin":176,"position":5},"title":"MFC \ud0c0\uc774\uba38","date":"2014-07-16","format":false,"excerpt":"\uc77c\uc815 \uc2dc\uac04 \ub4a4\uc5d0 \uc6d0\ud558\ub294 \uc5c5\ubb34\ub97c \ucc98\ub9ac\ud558\uae30 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ube44\uc2b7\ud55c \uae30\ub2a5\uc73c\ub85c Sleep( millisecond ) \ub97c \uc785\ub825\ud558\ub294\ub370\uc694. Sleep\uc744 \uc774\uc6a9\ud560 \uacbd\uc6b0 \ud574\ub2f9 \uc4f0\ub808\ub4dc \uc804\uccb4\uac00 \uba48\ucd94\uc5b4 \ubc84\ub9ac\uace0 \uadf8 \uba48\ucda4\uc5d0 \ub530\ub77c \uc678\ubd80 \uc778\ud130\ub7fd\ud2b8\uc785\ub825(\ud0a4\ubcf4\ub4dc, \ub9c8\uc6b0\uc2a4, \ub4f1\ub4f1)\uc774 \uc8fc\uc5b4\uc9c0\uac8c \ub418\uba74 \ubc84\ud37c\uc5d0 \uc313\uc600\ub2e4\uac00 \ud55c\ubc88\uc5d0 \ucc98\ub9ac\ub418\ub294 \uc77c\uc774 \ubc1c\uc0dd\ud558\uac8c \ub418\ubc84\ub9bd\ub2c8\ub2e4. \uadf8\ub798\uc11c \uadf8\uac78 \ubc29\uc9c0\ud558\uae30 \uc704\ud574 Timer\ub97c \uc0ac\uc6a9\ud558\ub294\ub370 \uc0ac\uc6a9\ubc29\ubc95\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. -\ub4f1\ub85d \u00a0BEGIN_MESSAGE_MAP(CGroupChatWindow, CDialog)\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/176"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=176"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/176\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}