1 // OptionsDlg.cpp : ʵ���ļ� 2 // 3 4 #include "stdafx.h" 5 #include "MusicPlayer2.h" 6 #include "OptionsDlg.h" 7 #include "afxdialogex.h" 8 9 10 // COptionsDlg �Ի��� 11 12 IMPLEMENT_DYNAMIC(COptionsDlg, CDialog) 13 14 COptionsDlg::COptionsDlg(CWnd* pParent /*=NULL*/) 15 : CDialog(IDD_OPTIONS_DIALOG, pParent) 16 { 17 18 } 19 20 COptionsDlg::~COptionsDlg() 21 { 22 } 23 24 void COptionsDlg::DoDataExchange(CDataExchange* pDX) 25 { 26 CDialog::DoDataExchange(pDX); 27 DDX_Control(pDX, IDC_OPTIONS_TAB, m_tab); 28 } 29 30 31 BEGIN_MESSAGE_MAP(COptionsDlg, CDialog) 32 ON_NOTIFY(TCN_SELCHANGE, IDC_OPTIONS_TAB, &COptionsDlg::OnTcnSelchangeOptionsTab) 33 ON_BN_CLICKED(IDC_APPLY_BUTTON, &COptionsDlg::OnBnClickedApplyButton) 34 END_MESSAGE_MAP() 35 36 37 // COptionsDlg ��Ϣ������� 38 39 40 BOOL COptionsDlg::OnInitDialog() 41 { 42 CDialog::OnInitDialog(); 43 44 // TODO: �ڴ���Ӷ���ij�ʼ�� 45 //�����ǩ 46 m_tab.InsertItem(0, _T("����ѡ��")); 47 m_tab.InsertItem(1, _T("�������")); 48 m_tab.InsertItem(2, _T("��������")); 49 //�����ӶԻ��� 50 m_tab1_dlg.Create(IDD_PLAY_SETTING_DIALOG, &m_tab); 51 m_tab2_dlg.Create(IDD_APPEREANCE_SETTING_DLG, &m_tab); 52 m_tab3_dlg.Create(IDD_DATA_SETTINGS_DIALOG, &m_tab); 53 //�����ӶԻ���Ĵ�С��λ�� 54 CRect rect; 55 m_tab.GetClientRect(rect); 56 CRect rcTabItem; 57 m_tab.GetItemRect(0, rcTabItem); 58 rect.top += rcTabItem.Height() + 4; 59 rect.left += 4; 60 rect.bottom -= 4; 61 rect.right -= 4; 62 m_tab1_dlg.MoveWindow(&rect); 63 m_tab2_dlg.MoveWindow(&rect); 64 m_tab3_dlg.MoveWindow(&rect); 65 66 switch (m_tab_selected) 67 { 68 case 1: 69 m_tab2_dlg.ShowWindow(SW_SHOW); 70 m_tab.SetCurFocus(1); 71 break; 72 case 2: 73 m_tab3_dlg.ShowWindow(SW_SHOW); 74 m_tab.SetCurFocus(2); 75 break; 76 default: 77 m_tab1_dlg.ShowWindow(SW_SHOW); 78 m_tab.SetCurFocus(0); 79 } 80 return TRUE; // return TRUE unless you set the focus to a control 81 // �쳣: OCX ����ҳӦ���� FALSE 82 } 83 84 85 void COptionsDlg::OnTcnSelchangeOptionsTab(NMHDR *pNMHDR, LRESULT *pResult) 86 { 87 // TODO: �ڴ���ӿؼ�֪ͨ���������� 88 m_tab_selected = m_tab.GetCurSel(); 89 switch (m_tab_selected) 90 { 91 case 0: 92 m_tab1_dlg.ShowWindow(SW_SHOW); 93 m_tab2_dlg.ShowWindow(SW_HIDE); 94 m_tab3_dlg.ShowWindow(SW_HIDE); 95 m_tab1_dlg.SetFocus(); 96 break; 97 case 1: 98 m_tab2_dlg.ShowWindow(SW_SHOW); 99 m_tab1_dlg.ShowWindow(SW_HIDE); 100 m_tab3_dlg.ShowWindow(SW_HIDE); 101 m_tab2_dlg.SetFocus(); 102 break; 103 case 2: 104 m_tab3_dlg.ShowWindow(SW_SHOW); 105 m_tab1_dlg.ShowWindow(SW_HIDE); 106 m_tab2_dlg.ShowWindow(SW_HIDE); 107 m_tab3_dlg.SetFocus(); 108 break; 109 } 110 *pResult = 0; 111 } 112 113 114 115 void COptionsDlg::OnOK() 116 { 117 // TODO: �ڴ����ר�ô����/����û��� 118 m_tab2_dlg.OnOK(); 119 120 CDialog::OnOK(); 121 } 122 123 124 void COptionsDlg::OnBnClickedApplyButton() 125 { 126 // TODO: �ڴ���ӿؼ�֪ͨ���������� 127 ::SendMessage(theApp.m_pMainWnd->GetSafeHwnd(), WM_SETTINGS_APPLIED, (WPARAM)this, 0); 128 } 129