1f5eefe2fSzhongyang219 // OptionsDlg.cpp : ʵ���ļ� 2f5eefe2fSzhongyang219 // 3f5eefe2fSzhongyang219 4f5eefe2fSzhongyang219 #include "stdafx.h" 5f5eefe2fSzhongyang219 #include "MusicPlayer2.h" 6f5eefe2fSzhongyang219 #include "OptionsDlg.h" 7f5eefe2fSzhongyang219 #include "afxdialogex.h" 8f5eefe2fSzhongyang219 9f5eefe2fSzhongyang219 10f5eefe2fSzhongyang219 // COptionsDlg �Ի��� 11f5eefe2fSzhongyang219 12f5eefe2fSzhongyang219 IMPLEMENT_DYNAMIC(COptionsDlg, CDialog) 13f5eefe2fSzhongyang219 14f5eefe2fSzhongyang219 COptionsDlg::COptionsDlg(CWnd* pParent /*=NULL*/) 15f5eefe2fSzhongyang219 : CDialog(IDD_OPTIONS_DIALOG, pParent) 16f5eefe2fSzhongyang219 { 17f5eefe2fSzhongyang219 18f5eefe2fSzhongyang219 } 19f5eefe2fSzhongyang219 20f5eefe2fSzhongyang219 COptionsDlg::~COptionsDlg() 21f5eefe2fSzhongyang219 { 22f5eefe2fSzhongyang219 } 23f5eefe2fSzhongyang219 24f5eefe2fSzhongyang219 void COptionsDlg::DoDataExchange(CDataExchange* pDX) 25f5eefe2fSzhongyang219 { 26f5eefe2fSzhongyang219 CDialog::DoDataExchange(pDX); 27f5eefe2fSzhongyang219 DDX_Control(pDX, IDC_OPTIONS_TAB, m_tab); 28f5eefe2fSzhongyang219 } 29f5eefe2fSzhongyang219 30f5eefe2fSzhongyang219 31f5eefe2fSzhongyang219 BEGIN_MESSAGE_MAP(COptionsDlg, CDialog) 325d218daaSZhong Yang ON_BN_CLICKED(IDC_APPLY_BUTTON, &COptionsDlg::OnBnClickedApplyButton) 33b26f7c9eSZhong Yang ON_WM_DESTROY() 34*97b7b8c3Szhongyang ON_WM_GETMINMAXINFO() 35*97b7b8c3Szhongyang ON_WM_SIZE() 36f5eefe2fSzhongyang219 END_MESSAGE_MAP() 37f5eefe2fSzhongyang219 38f5eefe2fSzhongyang219 39f5eefe2fSzhongyang219 // COptionsDlg ��Ϣ������� 40f5eefe2fSzhongyang219 41f5eefe2fSzhongyang219 42f5eefe2fSzhongyang219 BOOL COptionsDlg::OnInitDialog() 43f5eefe2fSzhongyang219 { 44f5eefe2fSzhongyang219 CDialog::OnInitDialog(); 45f5eefe2fSzhongyang219 46f5eefe2fSzhongyang219 // TODO: �ڴ���Ӷ���ij�ʼ�� 47f5eefe2fSzhongyang219 48*97b7b8c3Szhongyang SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), FALSE); // ����Сͼ�� 49*97b7b8c3Szhongyang 50*97b7b8c3Szhongyang //��ȡ��ʼʱ���ڵĴ�С 51*97b7b8c3Szhongyang CRect rect; 52*97b7b8c3Szhongyang GetWindowRect(rect); 53*97b7b8c3Szhongyang m_min_size.cx = rect.Width(); 54*97b7b8c3Szhongyang m_min_size.cy = rect.Height(); 55*97b7b8c3Szhongyang 56bb1ccb84SZhong Yang //�����ӶԻ��� 57bb1ccb84SZhong Yang m_tab1_dlg.Create(IDD_LYRIC_SETTING_DIALOG); 58bb1ccb84SZhong Yang m_tab2_dlg.Create(IDD_APPEREANCE_SETTING_DLG); 59bb1ccb84SZhong Yang m_tab3_dlg.Create(IDD_DATA_SETTINGS_DIALOG); 60bb1ccb84SZhong Yang m_tab4_dlg.Create(IDD_PLAY_SETTING_DIALOG); 619afaa4f1SZhong Yang m_tab5_dlg.Create(IDD_HOT_KEY_SETTINGS_DIALOG); 62bb1ccb84SZhong Yang 633cbff0c7SZhong Yang //�����ӶԻ��� 64*97b7b8c3Szhongyang m_tab_vect.push_back(&m_tab1_dlg); 65*97b7b8c3Szhongyang m_tab_vect.push_back(&m_tab2_dlg); 66*97b7b8c3Szhongyang m_tab_vect.push_back(&m_tab3_dlg); 67*97b7b8c3Szhongyang m_tab_vect.push_back(&m_tab4_dlg); 68*97b7b8c3Szhongyang m_tab_vect.push_back(&m_tab5_dlg); 693cbff0c7SZhong Yang 703cbff0c7SZhong Yang //��ȡ�ӶԻ���ij�ʼ�߶� 71*97b7b8c3Szhongyang for (const auto* pDlg : m_tab_vect) 723cbff0c7SZhong Yang { 733cbff0c7SZhong Yang CRect rect; 743cbff0c7SZhong Yang pDlg->GetWindowRect(rect); 75*97b7b8c3Szhongyang m_tab_height.push_back(rect.Height()); 763cbff0c7SZhong Yang } 773cbff0c7SZhong Yang 78bb1ccb84SZhong Yang //��ӶԻ��� 79d9d0c25bSZhong Yang m_tab.AddWindow(&m_tab1_dlg, CCommon::LoadText(IDS_LYRIC_SETTINGS)); 80d9d0c25bSZhong Yang m_tab.AddWindow(&m_tab2_dlg, CCommon::LoadText(IDS_APPEARANCE_SETTINGS)); 81d9d0c25bSZhong Yang m_tab.AddWindow(&m_tab3_dlg, CCommon::LoadText(IDS_GENERAL_SETTINGS)); 82d9d0c25bSZhong Yang m_tab.AddWindow(&m_tab4_dlg, CCommon::LoadText(IDS_PLAY_SETTINGS)); 83d9d0c25bSZhong Yang m_tab.AddWindow(&m_tab5_dlg, CCommon::LoadText(IDS_GLOBLE_HOTKEY)); 84bb1ccb84SZhong Yang 853cbff0c7SZhong Yang //Ϊÿ���Ӵ������ù�����Ϣ 86*97b7b8c3Szhongyang for (size_t i = 0; i < m_tab_vect.size(); i++) 873cbff0c7SZhong Yang { 88*97b7b8c3Szhongyang m_tab_vect[i]->SetScrollbarInfo(m_tab.m_tab_rect.Height(), m_tab_height[i]); 893cbff0c7SZhong Yang } 903cbff0c7SZhong Yang 91bb1ccb84SZhong Yang m_tab.SetCurTab(m_tab_selected); 92bb1ccb84SZhong Yang 93f5eefe2fSzhongyang219 return TRUE; // return TRUE unless you set the focus to a control 94f5eefe2fSzhongyang219 // �쳣: OCX ����ҳӦ���� FALSE 95f5eefe2fSzhongyang219 } 96f5eefe2fSzhongyang219 97575ff337SZhong Yang void COptionsDlg::OnOK() 98575ff337SZhong Yang { 99575ff337SZhong Yang // TODO: �ڴ����ר�ô����/����û��� 10054359200SZhong Yang m_tab1_dlg.OnOK(); 101575ff337SZhong Yang m_tab2_dlg.OnOK(); 102d9d0c25bSZhong Yang m_tab3_dlg.OnOK(); 103575ff337SZhong Yang 104575ff337SZhong Yang CDialog::OnOK(); 105575ff337SZhong Yang } 1065d218daaSZhong Yang 1075d218daaSZhong Yang 1085d218daaSZhong Yang void COptionsDlg::OnBnClickedApplyButton() 1095d218daaSZhong Yang { 1105d218daaSZhong Yang // TODO: �ڴ���ӿؼ�֪ͨ���������� 1115d218daaSZhong Yang ::SendMessage(theApp.m_pMainWnd->GetSafeHwnd(), WM_SETTINGS_APPLIED, (WPARAM)this, 0); 1125d218daaSZhong Yang } 113b26f7c9eSZhong Yang 114b26f7c9eSZhong Yang 115b26f7c9eSZhong Yang void COptionsDlg::OnDestroy() 116b26f7c9eSZhong Yang { 117b26f7c9eSZhong Yang CDialog::OnDestroy(); 118b26f7c9eSZhong Yang 119b26f7c9eSZhong Yang // TODO: �ڴ˴������Ϣ���������� 120b26f7c9eSZhong Yang m_tab_selected = m_tab.GetCurSel(); 121b26f7c9eSZhong Yang } 122*97b7b8c3Szhongyang 123*97b7b8c3Szhongyang 124*97b7b8c3Szhongyang void COptionsDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI) 125*97b7b8c3Szhongyang { 126*97b7b8c3Szhongyang // TODO: �ڴ������Ϣ�����������/�����Ĭ��ֵ 127*97b7b8c3Szhongyang //���ƴ�����С��С 128*97b7b8c3Szhongyang lpMMI->ptMinTrackSize.x = m_min_size.cx; //������С��� 129*97b7b8c3Szhongyang lpMMI->ptMinTrackSize.y = m_min_size.cy; //������С�߶� 130*97b7b8c3Szhongyang 131*97b7b8c3Szhongyang CDialog::OnGetMinMaxInfo(lpMMI); 132*97b7b8c3Szhongyang } 133*97b7b8c3Szhongyang 134*97b7b8c3Szhongyang 135*97b7b8c3Szhongyang void COptionsDlg::OnSize(UINT nType, int cx, int cy) 136*97b7b8c3Szhongyang { 137*97b7b8c3Szhongyang CDialog::OnSize(nType, cx, cy); 138*97b7b8c3Szhongyang if (nType != SIZE_MINIMIZED) 139*97b7b8c3Szhongyang { 140*97b7b8c3Szhongyang //Ϊÿ���Ӵ������ù�����Ϣ 141*97b7b8c3Szhongyang for (size_t i = 0; i < m_tab_vect.size(); i++) 142*97b7b8c3Szhongyang { 143*97b7b8c3Szhongyang m_tab_vect[i]->ResetScroll(); 144*97b7b8c3Szhongyang m_tab_vect[i]->SetScrollbarInfo(m_tab.m_tab_rect.Height(), m_tab_height[i]); 145*97b7b8c3Szhongyang } 146*97b7b8c3Szhongyang 147*97b7b8c3Szhongyang } 148*97b7b8c3Szhongyang 149*97b7b8c3Szhongyang // TODO: �ڴ˴������Ϣ���������� 150*97b7b8c3Szhongyang } 151