1 // OggEncodeCfgDlg.cpp: 实现文件
2 //
3
4 #include "stdafx.h"
5 #include "MusicPlayer2.h"
6 #include "OggEncodeCfgDlg.h"
7
8
9 // COggEncodeCfgDlg 对话框
10
IMPLEMENT_DYNAMIC(COggEncodeCfgDlg,CBaseDialog)11 IMPLEMENT_DYNAMIC(COggEncodeCfgDlg, CBaseDialog)
12
13 COggEncodeCfgDlg::COggEncodeCfgDlg(CWnd* pParent /*=nullptr*/)
14 : CBaseDialog(IDD_OGG_ENCODE_CFG_DIALOG, pParent)
15 {
16
17 }
18
~COggEncodeCfgDlg()19 COggEncodeCfgDlg::~COggEncodeCfgDlg()
20 {
21 }
22
SetInfoText()23 void COggEncodeCfgDlg::SetInfoText()
24 {
25 int rate{};
26 switch (m_encode_para.encode_quality)
27 {
28 case -1: rate = 45; break;
29 case 0: rate = 64; break;
30 case 1: rate = 80; break;
31 case 2: rate = 96; break;
32 case 3: rate = 112; break;
33 case 4: rate = 128; break;
34 case 5: rate = 160; break;
35 case 6: rate = 192; break;
36 case 7: rate = 224; break;
37 case 8: rate = 256; break;
38 case 9: rate = 320; break;
39 case 10: rate = 500; break;
40 }
41 // wstring info = theApp.m_str_table.LoadTextFormat(L"TXT_ENCODE_OPT_OGG_QUALITY_INFO", { m_encode_para.encode_quality, rate });
42 std::wstringstream wss;
43 wss << m_encode_para.encode_quality << L" (" << rate << L" kbps)";
44 wstring info = wss.str();
45 SetDlgItemTextW(IDC_INFO_STATIC, info.c_str());
46 }
47
GetDialogName() const48 CString COggEncodeCfgDlg::GetDialogName() const
49 {
50 return L"OggEncodeOptDlg";
51 }
52
InitializeControls()53 bool COggEncodeCfgDlg::InitializeControls()
54 {
55 wstring temp;
56 temp = theApp.m_str_table.LoadText(L"TITLE_ENCODE_OPT_OGG");
57 SetWindowTextW(temp.c_str());
58 temp = theApp.m_str_table.LoadText(L"TXT_ENCODE_OPT_OGG_ENCODE_QUALITY_SEL");
59 SetDlgItemTextW(IDC_TXT_ENCODE_OPT_OGG_ENCODE_QUALITY_SEL_STATIC, temp.c_str());
60 // IDC_QUALITY_SLIDER
61 // IDC_INFO_STATIC
62 temp = theApp.m_str_table.LoadText(L"TXT_ENCODE_OPT_OGG_ENCODE_QUALITY_LOW");
63 SetDlgItemTextW(IDC_TXT_ENCODE_OPT_OGG_ENCODE_QUALITY_LOW_STATIC, temp.c_str());
64 temp = theApp.m_str_table.LoadText(L"TXT_ENCODE_OPT_OGG_ENCODE_QUALITY_HIGH");
65 SetDlgItemTextW(IDC_TXT_ENCODE_OPT_OGG_ENCODE_QUALITY_HIGH_STATIC, temp.c_str());
66
67 RepositionTextBasedControls({
68 { CtrlTextInfo::R1, IDOK, CtrlTextInfo::W32 },
69 { CtrlTextInfo::R2, IDCANCEL, CtrlTextInfo::W32 }
70 });
71 return true;
72 }
73
DoDataExchange(CDataExchange * pDX)74 void COggEncodeCfgDlg::DoDataExchange(CDataExchange* pDX)
75 {
76 CBaseDialog::DoDataExchange(pDX);
77 DDX_Control(pDX, IDC_QUALITY_SLIDER, m_quality_sld);
78 }
79
80
BEGIN_MESSAGE_MAP(COggEncodeCfgDlg,CBaseDialog)81 BEGIN_MESSAGE_MAP(COggEncodeCfgDlg, CBaseDialog)
82 ON_NOTIFY(NM_CUSTOMDRAW, IDC_QUALITY_SLIDER, &COggEncodeCfgDlg::OnNMCustomdrawQualitySlider)
83 END_MESSAGE_MAP()
84
85
86 // COggEncodeCfgDlg 消息处理程序
87
88
89 BOOL COggEncodeCfgDlg::OnInitDialog()
90 {
91 CBaseDialog::OnInitDialog();
92
93 // TODO: 在此添加额外的初始化
94 m_quality_sld.SetRange(-1, 10);
95 m_quality_sld.SetPos(m_encode_para.encode_quality);
96 SetInfoText();
97 return TRUE; // return TRUE unless you set the focus to a control
98 // 异常: OCX 属性页应返回 FALSE
99 }
100
101
OnNMCustomdrawQualitySlider(NMHDR * pNMHDR,LRESULT * pResult)102 void COggEncodeCfgDlg::OnNMCustomdrawQualitySlider(NMHDR *pNMHDR, LRESULT *pResult)
103 {
104 LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
105 // TODO: 在此添加控件通知处理程序代码
106 m_encode_para.encode_quality = m_quality_sld.GetPos();
107 SetInfoText();
108 *pResult = 0;
109 }
110