< ÇÏÀÌÆÛ
¸µÅ© >
ÇÏÀÌÆÛ ¸µÅ© ÄÁÆ®·ÑÀº Web ÆäÀÌÁöÀÇ ÇÏÀÌÆÛ ¸µÅ©¿Í °°Àº ÄÁÆ®·ÑÀÔ´Ï´Ù. WTLÀº ÇÏÀÌÆÛ ¸µÅ© ÄÁÆ®·ÑÀ» ÀÛ¼ºÇϱâ À§Çؼ CHyperLink ¶ó°í Çϴ Ŭ·¡½º¸¦ ÁغñÇØ ÀÖ½À´Ï´Ù.
ÀÌÇÏ¿¡ ³ªÅ¸³»´Â °ÍÀº CHyperLink Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¿¹ÀÔ´Ï´Ù.

|
// stdafx.h #include <atlbase.h> #include <atlapp.h> extern CAppModule _Module; #include <atlwin.h> #include <atlcrack.h> #include <atlmisc.h> #include <atlctrls.h> #include <atlctrlx.h> // CHyperLinkŬ·¡½º¸¦ »ç¿ëÇϱâ À§ÇØ |
|
// maindlg.h class CMainDlg : public CDialogImpl<CMainDlg> { public: enum { IDD = IDD_MAINDLG }; CHyperLink
m_link_google; // ÇÏÀÌÆÛ ¸µÅ© // ¸Þ¼¼Áö ¸Ê BEGIN_MSG_MAP_EX(CMainDlg)
MSG_WM_INITDIALOG(OnInitDialog)
COMMAND_ID_HANDLER_EX(IDOK, OnOK)
COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel) END_MSG_MAP() LRESULT OnInitDialog(HWND hWnd, LPARAM lParam){ // ½ºÅ©¸°ÀÇ Áß¾Ó¿¡ ¹èÄ¡ CenterWindow(); // Å« ¾ÆÀÌÄÜ ¼³Á¤
HICON hIcon = AtlLoadIconImage(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON)); SetIcon(hIcon, TRUE); // ÀÛÀº ¾ÆÀÌÄÜ ¼³Á¤
HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON)); SetIcon(hIconSmall, FALSE); // ÄÁÆ®·Ñ ¼³Á¤ m_link_google.SubclassWindow(GetDlgItem(IDC_STATIC_LINK)); m_link_google.SetLabel(_T("google")); m_link_google.SetHyperLink(_T("http://www.google.com/")); return TRUE; } void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){ EndDialog(nID); } void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){ EndDialog(nID); } }; |
|
// Control.cpp #include "stdafx.h" #include "resource.h" #include "maindlg.h" CAppModule _Module; int WINAPI _tWinMain(HINSTANCE
hInstance, HINSTANCE, LPTSTR lpCmdLine,
int nCmdShow) { HRESULT hRes = ::CoInitialize(NULL); ATLASSERT(SUCCEEDED(hRes)); ::DefWindowProc(NULL,
0, 0, 0L); AtlInitCommonControls(ICC_COOL_CLASSES
| ICC_WIN95_CLASSES); hRes
= _Module.Init(NULL, hInstance); ATLASSERT(SUCCEEDED(hRes)); int nRet = 0; // BLOCK: ¾îÇø®ÄÉÀÌ¼Ç ½ÇÇà { CMainDlg dlgMain; nRet = dlgMain.DoModal(); } _Module.Term(); ::CoUninitialize(); return nRet; } |
¡¡¿ì¼± ¸®¼Ò½º¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ´ÙÀ̾ó·Î±×¿¡ ½ºÅÂÆ½ ÄÁÆ®·ÑÀ» ¹èÄ¡ÇØ ¸®¼Ò½º ID¸¦ ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇÕ´Ï´Ù.
|
ÄÁÆ®·Ñ¸í |
¸®¼Ò½º ID |
|
½ºÅÂÆ½ |
IDC_STATIC_LINK |
¡¡CMainDlgŬ·¡½º¿¡¼´Â ¿ì¼± CHyperLink Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ¸â¹ö º¯¼ö·Î¼ ¼±¾ðÇÕ´Ï´Ù. À̰ÍÀ» »ç¿ëÇϱâ À§Çؼ´Â WM_INITDIALOG ¸Þ¼¼Áö Çڵ鷯·Î ¼ºê Ŭ·¡½ºÈ ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¡¡´ÙÀ½¿¡ WM_INITDIALOG
¸Þ¼¼Áö Çڵ鷯¿¡¼´Â ÇÏÀÌÆÛ ¸µÅ© ÄÁÆ®·Ñ¿¡ ¶óº§°ú ¸µÅ©¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¡¡ÀÌ¿Í °°ÀÌ ÇÏÀÌÆÛ ¸µÅ© ÄÁÆ®·ÑÀ» ÀÛ¼ºÇϱâ À§Çؼ´Â ½ºÅÂÆ½ ÄÁÆ®·ÑÀ» ¼ºê Ŭ·¡½ºÈ ÇÕ´Ï´Ù. ±×¸®°í Create()¸¦ »ç¿ëÇØµµ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
¡¡WTLÀÇ ÇÏÀÌÆÛ ¸µÅ© ÄÁÆ®·ÑÀº µ¶ÀÚÀûÀÎ È®Àå ½ºÅ¸ÀÏÀ» ÁغñÇØ ÀÖ½À´Ï´Ù.
¹ØÁÙÀ» Ç¥½ÃÇÕ´Ï´Ù. ÀÌ ½ºÅ¸ÀÏÀº µðÆúÆ®·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù.
¹ØÁÙÀ» Ç¥½ÃÇÏÁö ¾Ê½À´Ï´Ù.
¸¶¿ì½º Ä¿¼°¡ ÇÏÀÌÆÛ ¸µÅ© À§¸¦ Áö³¯ ¶§¿¡ ¹ØÁÙÀ» Ç¥½ÃÇÕ´Ï´Ù.
Ŭ¸¯ÇßÀ» ¶§(Navigate()°¡ ºÒ·Á °¬À» ¶§ )¿¡ ºÎ¸ð À©µµ¿ì¿¡ WM_COMMAND¸Þ¼¼Áö¸¦ º¸³À´Ï´Ù. ÀÚµ¿ÀûÀ¸·Î ºê¶ó¿ìÀú¸¦ ±âµ¿ÇÏÁö ¾Ê½À´Ï´Ù.
Ŭ¸¯ÇßÀ» ¶§(Navigate()°¡ ºÒ·Á °¬À» ¶§ )¿¡ ºÎ¸ð À©µµ¿ì¿¡ WM_NOTIFY ¸Þ¼¼Áö¸¦ º¸³À´Ï´Ù. ÀÚµ¿ÀûÀ¸·Î ºê¶ó¿ìÀú¸¦ ±âµ¿ÇÏÁö ¾Ê½À´Ï´Ù.
¶óº§ ³»ÀÇ <A>ű׿¡ µÑ·¯½ÎÀΠij¸¯ÅÍ ¶óÀÎÀ» ¸µÅ©ÈÇÕ´Ï´Ù. ¸µÅ© ij¸¯ÅÍ ¶óÀÎÀº ÀÚµ¿ÀûÀ¸·Î ¿ÞÂÊ ¸ÂÃ㠵˴ϴÙ.
¶óº§ ³»ÀÇ <A>ű׿¡ µÑ·¯½ÎÀΠij¸¯ÅÍ ¶óÀÎÀ» ±½Àº ±Û¾¾·Î ¸µÅ©ÈÇÕ´Ï´Ù. ¸µÅ© ij¸¯ÅÍ ¶óÀÎÀº ÀÚµ¿ÀûÀ¸·Î ¿ÞÂÊ ¸ÂÃ㠵˴ϴÙ. ÀÌ ½ºÅ¸ÀÏÀ» »ç¿ëÇϸé HLINK_UNDERLINED ½ºÅ¸ÀÏÀº ¹«½ÃµË´Ï´Ù.
Åø ÆÁÀ» Ç¥½ÃÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌ·¯ÇÑ È®Àå ½ºÅ¸ÀÏÀº SetHyperLinkExtendedStyle()¿¡ ÀÇÇØ ¼³Á¤ÇÕ´Ï´Ù. µ¡ºÙ¿© ÀÌ ¸â¹ö ÇÔ¼ö´Â ¼ºê Ŭ·¡½ºÈ Çϱâ Àü¿¡ È£ÃâÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½¿¡ ³ªÅ¸³»´Â °ÍÀº HLINK_USETAGS ½ºÅ¸ÀÏÀ» Ãß°¡ÇØ ¶óº§ ³»¿¡¼
<A>ű׸¦ »ç¿ëÇÏ´Â ¿¹ÀÔ´Ï´Ù.

|
LRESULT OnInitDialog(HWND
hWnd, LPARAM lParam){ ... ... // ÄÁÆ®·Ñ ¼³Á¤ m_link_google.SetHyperLinkExtendedStyle(HLINK_USETAGS); // È®Àå ½ºÅ¸ÀÏ ¼³Á¤ m_link_google.SubclassWindow(GetDlgItem(IDC_STATIC_LINK)); m_link_google.SetLabel(_T("<a>google</a>¿¡ Á¡ÇÁ")); m_link_google.SetHyperLink(_T("http://www.google.com/")); return
TRUE; } |