xref: /MusicPlayer2/MusicPlayer2/OptionsDlg.cpp (revision 3cbff0c7671bcf0284a8f29c7446ed926b15eec2)
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()
34f5eefe2fSzhongyang219 END_MESSAGE_MAP()
35f5eefe2fSzhongyang219 
36f5eefe2fSzhongyang219 
37f5eefe2fSzhongyang219 // COptionsDlg ��Ϣ�������
38f5eefe2fSzhongyang219 
39f5eefe2fSzhongyang219 
40f5eefe2fSzhongyang219 BOOL COptionsDlg::OnInitDialog()
41f5eefe2fSzhongyang219 {
42f5eefe2fSzhongyang219 	CDialog::OnInitDialog();
43f5eefe2fSzhongyang219 
44f5eefe2fSzhongyang219 	// TODO:  �ڴ���Ӷ���ij�ʼ��
45f5eefe2fSzhongyang219 
46bb1ccb84SZhong Yang 	//�����ӶԻ���
47bb1ccb84SZhong Yang 	m_tab1_dlg.Create(IDD_LYRIC_SETTING_DIALOG);
48bb1ccb84SZhong Yang 	m_tab2_dlg.Create(IDD_APPEREANCE_SETTING_DLG);
49bb1ccb84SZhong Yang 	m_tab3_dlg.Create(IDD_DATA_SETTINGS_DIALOG);
50bb1ccb84SZhong Yang 	m_tab4_dlg.Create(IDD_PLAY_SETTING_DIALOG);
519afaa4f1SZhong Yang 	m_tab5_dlg.Create(IDD_HOT_KEY_SETTINGS_DIALOG);
52bb1ccb84SZhong Yang 
53*3cbff0c7SZhong Yang 	//�����ӶԻ���
54*3cbff0c7SZhong Yang 	std::vector<CTabDlg*> tab_vect;
55*3cbff0c7SZhong Yang 	tab_vect.push_back(&m_tab1_dlg);
56*3cbff0c7SZhong Yang 	tab_vect.push_back(&m_tab2_dlg);
57*3cbff0c7SZhong Yang 	tab_vect.push_back(&m_tab3_dlg);
58*3cbff0c7SZhong Yang 	tab_vect.push_back(&m_tab4_dlg);
59*3cbff0c7SZhong Yang 	tab_vect.push_back(&m_tab5_dlg);
60*3cbff0c7SZhong Yang 
61*3cbff0c7SZhong Yang 	//��ȡ�ӶԻ���ij�ʼ�߶�
62*3cbff0c7SZhong Yang 	std::vector<int> tab_height;
63*3cbff0c7SZhong Yang 	for (const auto* pDlg : tab_vect)
64*3cbff0c7SZhong Yang 	{
65*3cbff0c7SZhong Yang 		CRect rect;
66*3cbff0c7SZhong Yang 		pDlg->GetWindowRect(rect);
67*3cbff0c7SZhong Yang 		tab_height.push_back(rect.Height());
68*3cbff0c7SZhong Yang 	}
69*3cbff0c7SZhong Yang 
70bb1ccb84SZhong Yang 	//��ӶԻ���
71d9d0c25bSZhong Yang 	m_tab.AddWindow(&m_tab1_dlg, CCommon::LoadText(IDS_LYRIC_SETTINGS));
72d9d0c25bSZhong Yang 	m_tab.AddWindow(&m_tab2_dlg, CCommon::LoadText(IDS_APPEARANCE_SETTINGS));
73d9d0c25bSZhong Yang 	m_tab.AddWindow(&m_tab3_dlg, CCommon::LoadText(IDS_GENERAL_SETTINGS));
74d9d0c25bSZhong Yang 	m_tab.AddWindow(&m_tab4_dlg, CCommon::LoadText(IDS_PLAY_SETTINGS));
75d9d0c25bSZhong Yang 	m_tab.AddWindow(&m_tab5_dlg, CCommon::LoadText(IDS_GLOBLE_HOTKEY));
76bb1ccb84SZhong Yang 
77*3cbff0c7SZhong Yang 	//Ϊÿ���Ӵ������ù�����Ϣ
78*3cbff0c7SZhong Yang 	for (size_t i = 0; i < tab_vect.size(); i++)
79*3cbff0c7SZhong Yang 	{
80*3cbff0c7SZhong Yang 		tab_vect[i]->SetScrollbarInfo(m_tab.m_tab_rect.Height(), tab_height[i]);
81*3cbff0c7SZhong Yang 	}
82*3cbff0c7SZhong Yang 
83bb1ccb84SZhong Yang 	m_tab.SetCurTab(m_tab_selected);
84bb1ccb84SZhong Yang 
85f5eefe2fSzhongyang219 	return TRUE;  // return TRUE unless you set the focus to a control
86f5eefe2fSzhongyang219 				  // �쳣: OCX ����ҳӦ���� FALSE
87f5eefe2fSzhongyang219 }
88f5eefe2fSzhongyang219 
89575ff337SZhong Yang void COptionsDlg::OnOK()
90575ff337SZhong Yang {
91575ff337SZhong Yang 	// TODO: �ڴ����ר�ô����/����û���
92575ff337SZhong Yang 	m_tab2_dlg.OnOK();
93d9d0c25bSZhong Yang 	m_tab3_dlg.OnOK();
94575ff337SZhong Yang 
95575ff337SZhong Yang 	CDialog::OnOK();
96575ff337SZhong Yang }
975d218daaSZhong Yang 
985d218daaSZhong Yang 
995d218daaSZhong Yang void COptionsDlg::OnBnClickedApplyButton()
1005d218daaSZhong Yang {
1015d218daaSZhong Yang 	// TODO: �ڴ���ӿؼ�֪ͨ����������
1025d218daaSZhong Yang 	::SendMessage(theApp.m_pMainWnd->GetSafeHwnd(), WM_SETTINGS_APPLIED, (WPARAM)this, 0);
1035d218daaSZhong Yang }
104b26f7c9eSZhong Yang 
105b26f7c9eSZhong Yang 
106b26f7c9eSZhong Yang void COptionsDlg::OnDestroy()
107b26f7c9eSZhong Yang {
108b26f7c9eSZhong Yang 	CDialog::OnDestroy();
109b26f7c9eSZhong Yang 
110b26f7c9eSZhong Yang 	// TODO: �ڴ˴������Ϣ����������
111b26f7c9eSZhong Yang 	m_tab_selected = m_tab.GetCurSel();
112b26f7c9eSZhong Yang }
113