xref: /MusicPlayer2/MusicPlayer2/SupportedFormatDlg.cpp (revision ead86454da3af0f0f92b604977e8985caecdf15c)
1 // SupportedFormatDlg.cpp: 实现文件
2 //
3 
4 #include "stdafx.h"
5 #include "MusicPlayer2.h"
6 #include "SupportedFormatDlg.h"
7 #include "afxdialogex.h"
8 #include "AudioCommon.h"
9 
10 
11 // CSupportedFormatDlg 对话框
12 
13 IMPLEMENT_DYNAMIC(CSupportedFormatDlg, CDialog)
14 
15 CSupportedFormatDlg::CSupportedFormatDlg(CWnd* pParent /*=nullptr*/)
16 	: CDialog(IDD_SUPPORT_FORMAT_DIALOG, pParent)
17 {
18 
19 }
20 
21 CSupportedFormatDlg::~CSupportedFormatDlg()
22 {
23 }
24 
25 void CSupportedFormatDlg::DoDataExchange(CDataExchange* pDX)
26 {
27 	CDialog::DoDataExchange(pDX);
28 	DDX_Control(pDX, IDC_FORMAT_LIST, m_format_list);
29 }
30 
31 
32 BEGIN_MESSAGE_MAP(CSupportedFormatDlg, CDialog)
33 	ON_WM_GETMINMAXINFO()
34 END_MESSAGE_MAP()
35 
36 
37 // CSupportedFormatDlg 消息处理程序
38 
39 
40 BOOL CSupportedFormatDlg::OnInitDialog()
41 {
42 	CDialog::OnInitDialog();
43 
44 	// TODO:  在此添加额外的初始化
45 
46 	SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), FALSE);		// 设置小图标
47 
48 	//获取初始时窗口的大小
49 	CRect rect;
50 	GetWindowRect(rect);
51 	m_min_size.cx = rect.Width();
52 	m_min_size.cy = rect.Height();
53 
54 	//初始化列表
55 	//m_format_list.SetColor(theApp.m_app_setting_data.theme_color);
56 	m_format_list.GetWindowRect(rect);
57 	int width0, width1, width2;
58 	width0 = theApp.DPI(100);
59 	width1 = rect.Width() / 3;
60 	width2 = rect.Width() - width1 - width0 - theApp.DPI(20) - 1;
61 
62 	m_format_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_LABELTIP);
63 	m_format_list.InsertColumn(0, CCommon::LoadText(IDS_PLUGIN_FILE_NAME), LVCFMT_LEFT, width0);		//插入第1列
64 	m_format_list.InsertColumn(1, CCommon::LoadText(IDS_FORMAT_SUPPORTED), LVCFMT_LEFT, width1);		//插入第2列
65 	m_format_list.InsertColumn(2, CCommon::LoadText(IDS_FILE_EXTENSION), LVCFMT_LEFT, width2);		//插入第2列
66 
67 	int index = 0;
68 	for (const auto support_format : CAudioCommon::m_surpported_format)
69 	{
70 		if (!support_format.file_name.empty())
71 		{
72 			m_format_list.InsertItem(index, support_format.file_name.c_str());
73 			m_format_list.SetItemText(index, 1, support_format.description.c_str());
74 			m_format_list.SetItemText(index, 2, support_format.extensions_list.c_str());
75 
76 			index++;
77 		}
78 	}
79 
80 	return TRUE;  // return TRUE unless you set the focus to a control
81 				  // 异常: OCX 属性页应返回 FALSE
82 }
83 
84 void CSupportedFormatDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
85 {
86 	// TODO: 在此添加消息处理程序代码和/或调用默认值
87 	//限制窗口最小大小
88 	lpMMI->ptMinTrackSize.x = m_min_size.cx;		//设置最小宽度
89 	lpMMI->ptMinTrackSize.y = m_min_size.cy;		//设置最小高度
90 
91 	CDialog::OnGetMinMaxInfo(lpMMI);
92 }
93