URLLinkDlg.cpp
上传用户:yxb0227
上传日期:2022-06-16
资源大小:19k
文件大小:5k
源码类别:

按钮控件

开发平台:

Visual C++

  1. // URLLinkDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "URLLink.h"
  5. #include "URLLinkDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CURLLinkDlg dialog
  13. CURLLinkDlg::CURLLinkDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CURLLinkDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CURLLinkDlg)
  17. m_sDisplayText = _T("");
  18. m_sURLPrefix = _T("");
  19. m_sURL = _T("");
  20. m_sTooltipText = _T("");
  21. m_bEnable = TRUE;
  22. //}}AFX_DATA_INIT
  23. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  24. }
  25. void CURLLinkDlg::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialog::DoDataExchange(pDX);
  28. //{{AFX_DATA_MAP(CURLLinkDlg)
  29. DDX_Control(pDX, IDC_OPEN_MYDOCUMENT, m_btnMyDocument);
  30. DDX_Control(pDX, IDC_SHOW_MESSAGE, m_btnShowMessage);
  31. DDX_Control(pDX, IDOK, m_btnClose);
  32. DDX_Control(pDX, IDC_WEB_LINK2, m_btnWebLink2);
  33. DDX_Control(pDX, IDC_MAIL_TO2, m_btnMailto2);
  34. DDX_Control(pDX, IDC_CUSTOMIZE, m_btnLinkCustom);
  35. DDX_Control(pDX, IDC_WEB_LINK, m_btnWebLink);
  36. DDX_Control(pDX, IDC_MAIL_TO, m_btnMailto);
  37. DDX_Text(pDX, IDC_EDIT1, m_sDisplayText);
  38. DDX_Text(pDX, IDC_EDIT2, m_sURLPrefix);
  39. DDX_Text(pDX, IDC_EDIT3, m_sURL);
  40. DDX_Text(pDX, IDC_EDIT4, m_sTooltipText);
  41. DDX_Check(pDX, IDC_CHECK_ENABLE, m_bEnable);
  42. //}}AFX_DATA_MAP
  43. }
  44. BEGIN_MESSAGE_MAP(CURLLinkDlg, CDialog)
  45. //{{AFX_MSG_MAP(CURLLinkDlg)
  46. ON_WM_PAINT()
  47. ON_WM_QUERYDRAGICON()
  48. ON_BN_CLICKED(IDC_SET_DISPLAY_TEXT, OnSetDisplayText)
  49. ON_BN_CLICKED(IDC_SET_URL_PREFIX, OnSetUrlPrefix)
  50. ON_BN_CLICKED(IDC_SET_URL, OnSetUrl)
  51. ON_BN_CLICKED(IDC_SET_TOOLTIP, OnSetTooltip)
  52. ON_BN_CLICKED(IDC_CHECK_ENABLE, OnCheckEnable)
  53. //}}AFX_MSG_MAP
  54. ON_REGISTERED_MESSAGE(WM_LINK_CLICKED, OnLinkCliked)
  55. END_MESSAGE_MAP()
  56. /////////////////////////////////////////////////////////////////////////////
  57. // CURLLinkDlg message handlers
  58. BOOL CURLLinkDlg::OnInitDialog()
  59. {
  60. CDialog::OnInitDialog();
  61. SetIcon(m_hIcon, TRUE); // Set big icon
  62. SetIcon(m_hIcon, FALSE); // Set small icon
  63. m_btnWebLink.SetToolTipText(_T("Goto ")+m_btnWebLink.GetDefaultTipText());
  64. m_btnWebLink.SizeToContent();
  65. m_btnWebLink2.SetURL(_T("http:\\www.vegasoft.ws"));
  66. m_btnWebLink2.SetToolTipText();
  67. m_btnWebLink2.SizeToContent();
  68. m_btnMailto.SetURLPrefix(_T("Mailto:"));
  69. m_btnMailto.SetToolTipText();
  70. m_btnMailto.SizeToContent();
  71. m_btnMailto2.SetURL(_T("thanhnd@vegasoft.ws"));
  72. m_btnMailto2.SetURLPrefix(_T("Mailto:"));
  73. m_btnMailto2.SetToolTipText();
  74. m_btnMailto2.SetToolTipTextColor(RGB(0,100,0));
  75. m_btnMailto2.SizeToContent();
  76. m_btnLinkCustom.SetURL(_T("thanhnd@vegasoft.ws"));
  77. m_btnLinkCustom.SetURLPrefix(_T("Mailto:"));
  78. m_btnLinkCustom.SetToolTipText();
  79. m_btnLinkCustom.SetLinkColor(RGB(0,155,0),RGB(255,0,0),RGB(0,155,100));
  80. m_btnLinkCustom.SetToolTipColor(RGB(100,0,0),RGB(255,155,155));
  81. m_btnLinkCustom.SizeToContent();
  82. m_btnMyDocument.SetURL(_T("msinfo32.exe"));
  83. m_btnClose.SetToolTipText(_T("Show system information"));
  84. m_btnMyDocument.SetRegularColor(RGB(115,155,0));
  85. m_btnMyDocument.SizeToContent();
  86. m_btnShowMessage.SetToolTipText(_T("Click to display a message"));
  87. m_btnShowMessage.SetRegularColor(RGB(0,155,155));
  88. m_btnShowMessage.SizeToContent();
  89. m_btnClose.SetToolTipText(_T("Exit"));
  90. m_btnClose.SetRegularColor(RGB(255,0,0));
  91. m_btnClose.SizeToContent();
  92. m_btnLinkCustom.GetWindowText(m_sDisplayText);
  93. m_sTooltipText = m_btnLinkCustom.GetDefaultTipText();
  94. m_sURLPrefix = _T("Mailto:");
  95. m_sURL = _T("thanhnd@vegasoft.ws");
  96. UpdateData(FALSE);
  97. return TRUE;  // return TRUE  unless you set the focus to a control
  98. }
  99. void CURLLinkDlg::OnPaint() 
  100. {
  101. if (IsIconic())
  102. {
  103. CPaintDC dc(this); // device context for painting
  104. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  105. // Center icon in client rectangle
  106. int cxIcon = GetSystemMetrics(SM_CXICON);
  107. int cyIcon = GetSystemMetrics(SM_CYICON);
  108. CRect rect;
  109. GetClientRect(&rect);
  110. int x = (rect.Width() - cxIcon + 1) / 2;
  111. int y = (rect.Height() - cyIcon + 1) / 2;
  112. // Draw the icon
  113. dc.DrawIcon(x, y, m_hIcon);
  114. }
  115. else
  116. {
  117. CDialog::OnPaint();
  118. }
  119. }
  120. HCURSOR CURLLinkDlg::OnQueryDragIcon()
  121. {
  122. return (HCURSOR) m_hIcon;
  123. }
  124. void CURLLinkDlg::OnSetDisplayText() 
  125. {
  126. UpdateData();
  127. m_btnLinkCustom.SetDisplayText(m_sDisplayText);
  128. }
  129. void CURLLinkDlg::OnSetUrlPrefix() 
  130. {
  131. UpdateData();
  132. m_btnLinkCustom.SetURLPrefix(m_sURLPrefix);
  133. }
  134. void CURLLinkDlg::OnSetUrl() 
  135. {
  136. UpdateData();
  137. m_btnLinkCustom.SetURL(m_sURL);
  138. }
  139. void CURLLinkDlg::OnSetTooltip() 
  140. {
  141. UpdateData();
  142. m_btnLinkCustom.SetToolTipText(m_sTooltipText);
  143. }
  144. void CURLLinkDlg::OnCheckEnable() 
  145. {
  146. UpdateData();
  147. m_btnLinkCustom.EnableWindow(m_bEnable);
  148. }
  149. LRESULT CURLLinkDlg::OnLinkCliked(WPARAM wParam, LPARAM lParam)
  150. {
  151. UINT nLinkID = (UINT)wParam;
  152. switch(nLinkID)
  153. {
  154. case IDOK:
  155. OnOK();
  156. break;
  157. case IDC_SHOW_MESSAGE:
  158. MessageBox(_T("Hope you find this code useful!"));
  159. break;
  160. }
  161. return 0;
  162. }