xref: /MusicPlayer2/MusicPlayer2/MessageDlg.cpp (revision a87de17200448923cd61634f894b94d41827fa4c)
1 // MessageDlg.cpp: 实现文件
2 //
3 
4 #include "stdafx.h"
5 #include "MusicPlayer2.h"
6 #include "MessageDlg.h"
7 
8 
9 // CMessageDlg 对话框
10 
11 #define MESSAGE_DLG_ICON_SIZE (theApp.DPI(32))
12 
IMPLEMENT_DYNAMIC(CMessageDlg,CBaseDialog)13 IMPLEMENT_DYNAMIC(CMessageDlg, CBaseDialog)
14 
15 CMessageDlg::CMessageDlg(const wstring& dialog_name, CWnd* pParent)
16     : CBaseDialog(IDD_MESSAGE_DIALOG, pParent)
17 {
18     ASSERT(!dialog_name.empty());
19     m_dialog_name = dialog_name;
20 }
21 
~CMessageDlg()22 CMessageDlg::~CMessageDlg()
23 {
24 }
25 
InitializeControls()26 bool CMessageDlg::InitializeControls()
27 {
28     SetWindowTextW(m_title.c_str());
29     SetDlgItemTextW(IDC_INFO_STATIC, m_info.c_str());
30     SetDlgItemTextW(IDC_HELP_EDIT, m_message.c_str());
31     SetDlgItemTextW(IDC_SYSLINK1, (L"<a>" + m_link_text + L"</a>").c_str());
32 
33     RepositionTextBasedControls({
34         { CtrlTextInfo::L1, IDC_SYSLINK1, CtrlTextInfo::W_50 },
35         { CtrlTextInfo::R1, IDOK, CtrlTextInfo::W32 }
36         });
37     return true;
38 }
39 
DoDataExchange(CDataExchange * pDX)40 void CMessageDlg::DoDataExchange(CDataExchange* pDX)
41 {
42     CBaseDialog::DoDataExchange(pDX);
43 }
44 
45 
BEGIN_MESSAGE_MAP(CMessageDlg,CBaseDialog)46 BEGIN_MESSAGE_MAP(CMessageDlg, CBaseDialog)
47     ON_NOTIFY(NM_CLICK, IDC_SYSLINK1, &CMessageDlg::OnNMClickSyslink1)
48 END_MESSAGE_MAP()
49 
50 
51 // CMessageDlg 消息处理程序
52 
53 
54 BOOL CMessageDlg::OnInitDialog()
55 {
56     CBaseDialog::OnInitDialog();
57 
58     // TODO:  在此添加额外的初始化
59     SetIcon(IconMgr::IconType::IT_App, FALSE);      // 设置小图标
60 
61     ShowDlgCtrl(IDC_SYSLINK1, !m_link_text.empty());
62 
63     CWnd* pWnd = GetDlgItem(IDOK);
64     if (pWnd != nullptr)
65         pWnd->SetFocus();
66 
67     return FALSE; // return TRUE unless you set the focus to a control
68                   // 异常: OCX 属性页应返回 FALSE
69 }
70 
OnNMClickSyslink1(NMHDR * pNMHDR,LRESULT * pResult)71 void CMessageDlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult)
72 {
73     // TODO: 在此添加控件通知处理程序代码
74     if(!m_link_url.empty())
75         ShellExecute(NULL, _T("open"), m_link_url.c_str(), NULL, NULL, SW_SHOW);    //打开超链接
76 
77     *pResult = 0;
78 }
79