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