xref: /MusicPlayer2/MusicPlayer2/MessageDlg.cpp (revision 443d2d2511be730d1b1dd3181942b7fa6539aa1a)
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 
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 
22 CMessageDlg::~CMessageDlg()
23 {
24 }
25 
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, m_link_text.c_str());
32 
33     RepositionTextBasedControls({
34         { CtrlTextInfo::L1, IDC_SYSLINK1 },
35         { CtrlTextInfo::R1, IDOK, CtrlTextInfo::W32 }
36         });
37     return true;
38 }
39 
40 void CMessageDlg::DoDataExchange(CDataExchange* pDX)
41 {
42     CBaseDialog::DoDataExchange(pDX);
43 }
44 
45 
46 BEGIN_MESSAGE_MAP(CMessageDlg, CBaseDialog)
47     ON_NOTIFY(NM_CLICK, IDC_SYSLINK1, &CMessageDlg::OnNMClickSyslink1)
48     ON_EN_SETFOCUS(IDC_HELP_EDIT, &CMessageDlg::OnEnSetfocusHelpEdit)
49 END_MESSAGE_MAP()
50 
51 
52 // CMessageDlg 消息处理程序
53 
54 
55 BOOL CMessageDlg::OnInitDialog()
56 {
57     CBaseDialog::OnInitDialog();
58 
59     // TODO:  在此添加额外的初始化
60     SetIcon(theApp.m_icon_set.app.GetIcon(), FALSE);       // 设置小图标
61 
62     ShowDlgCtrl(IDC_SYSLINK1, !m_link_text.empty());
63 
64     return TRUE;  // return TRUE unless you set the focus to a control
65                   // 异常: OCX 属性页应返回 FALSE
66 }
67 
68 void CMessageDlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult)
69 {
70     // TODO: 在此添加控件通知处理程序代码
71     if(!m_link_url.empty())
72         ShellExecute(NULL, _T("open"), m_link_url.c_str(), NULL, NULL, SW_SHOW);    //打开超链接
73 
74     *pResult = 0;
75 }
76 
77 
78 void CMessageDlg::OnEnSetfocusHelpEdit()
79 {
80     // 不知道为什么,改过之后窗口打开IDC_HELP_EDIT就是全选,出此下策
81     CWnd* pWnd = GetDlgItem(IDOK);
82     if (pWnd != nullptr)
83         pWnd->SetFocus();
84 }
85