mirror of
https://github.com/zhongyang219/MusicPlayer2.git
synced 2026-10-29 05:09:33 +08:00
界面按钮增加按下效果
This commit is contained in:
@@ -52,6 +52,7 @@ void CMiniModeUI::DrawInfo(bool reset)
|
||||
//m_colors.color_spectrum_cover = theApp.m_app_setting_data.theme_color.original_color;
|
||||
m_colors.color_spectrum_back = theApp.m_app_setting_data.theme_color.dark1;
|
||||
m_colors.color_button_back = theApp.m_app_setting_data.theme_color.dark2;
|
||||
m_colors.color_button_pressed = theApp.m_app_setting_data.theme_color.light2;
|
||||
|
||||
m_colors.background_transparency = theApp.m_app_setting_data.background_transparency;
|
||||
}
|
||||
@@ -68,6 +69,7 @@ void CMiniModeUI::DrawInfo(bool reset)
|
||||
//m_colors.color_spectrum_cover = theApp.m_app_setting_data.theme_color.original_color;
|
||||
m_colors.color_spectrum_back = theApp.m_app_setting_data.theme_color.light3;
|
||||
m_colors.color_button_back = theApp.m_app_setting_data.theme_color.light2;
|
||||
m_colors.color_button_pressed = theApp.m_app_setting_data.theme_color.dark1;
|
||||
|
||||
m_colors.background_transparency = theApp.m_app_setting_data.background_transparency;
|
||||
}
|
||||
@@ -274,6 +276,15 @@ void CMiniModeUI::DrawInfo(bool reset)
|
||||
m_first_draw = false;
|
||||
}
|
||||
|
||||
void CMiniModeUI::LButtonDown(CPoint point)
|
||||
{
|
||||
for (auto& btn : m_buttons)
|
||||
{
|
||||
if (btn.second.rect.PtInRect(point) != FALSE)
|
||||
btn.second.pressed = true;
|
||||
}
|
||||
}
|
||||
|
||||
void CMiniModeUI::RButtonUp(CPoint point)
|
||||
{
|
||||
}
|
||||
@@ -316,6 +327,9 @@ void CMiniModeUI::LButtonUp(CPoint point)
|
||||
{
|
||||
for (auto& btn : m_buttons)
|
||||
{
|
||||
btn.second.hover = false;
|
||||
btn.second.pressed = false;
|
||||
|
||||
if (btn.second.rect.PtInRect(point))
|
||||
{
|
||||
switch (btn.first)
|
||||
@@ -333,7 +347,7 @@ void CMiniModeUI::LButtonUp(CPoint point)
|
||||
m_pMiniModeWnd->SendMessage(WM_COMMAND, ID_SHOW_PLAY_LIST);
|
||||
break;
|
||||
case BTN_RETURN:
|
||||
m_buttons[BTN_RETURN].hover = false;
|
||||
//m_buttons[BTN_RETURN].hover = false;
|
||||
m_pMiniModeWnd->SendMessage(WM_COMMAND, IDOK);
|
||||
break;
|
||||
case BTN_CLOSE:
|
||||
@@ -409,7 +423,10 @@ void CMiniModeUI::DrawUIButton(CRect rect, IPlayerUI::UIButton & btn, HICON icon
|
||||
alpha = ALPHA_CHG(m_colors.background_transparency);
|
||||
else
|
||||
alpha = 255;
|
||||
if (btn.hover)
|
||||
|
||||
if (btn.pressed && btn.hover)
|
||||
m_draw.FillAlphaRect(rc_tmp, m_colors.color_button_pressed, alpha);
|
||||
else if (btn.hover)
|
||||
m_draw.FillAlphaRect(rc_tmp, m_colors.color_text_2, alpha);
|
||||
else
|
||||
m_draw.FillAlphaRect(rc_tmp, m_colors.color_button_back, alpha);
|
||||
@@ -433,7 +450,9 @@ void CMiniModeUI::DrawTextButton(CRect rect, IPlayerUI::UIButton & btn, LPCTSTR
|
||||
alpha = ALPHA_CHG(m_colors.background_transparency);
|
||||
else
|
||||
alpha = 255;
|
||||
if (btn.hover)
|
||||
if (btn.pressed && btn.hover)
|
||||
m_draw.FillAlphaRect(rect, m_colors.color_button_pressed, alpha);
|
||||
else if (btn.hover)
|
||||
m_draw.FillAlphaRect(rect, m_colors.color_text_2, alpha);
|
||||
else
|
||||
m_draw.FillAlphaRect(rect, m_colors.color_button_back, alpha);
|
||||
|
||||
@@ -19,6 +19,7 @@ public:
|
||||
//COLORREF color_spectrum_cover; //有专辑封面时的频谱分析柱形的颜色
|
||||
COLORREF color_spectrum_back; //频谱分析的背景颜色
|
||||
COLORREF color_button_back; //歌词翻译按钮的背景色
|
||||
COLORREF color_button_pressed; //按钮按下的颜色
|
||||
int background_transparency; //背景不透明度0~100
|
||||
};
|
||||
|
||||
@@ -52,6 +53,7 @@ public:
|
||||
virtual void Init(CDC* pDC);
|
||||
virtual void DrawInfo(bool reset = false);
|
||||
|
||||
virtual void LButtonDown(CPoint point);
|
||||
virtual void RButtonUp(CPoint point);
|
||||
virtual void MouseMove(CPoint point);
|
||||
virtual void LButtonUp(CPoint point);
|
||||
|
||||
@@ -35,6 +35,15 @@ void CPlayerUIBase::DrawInfo(bool reset)
|
||||
m_first_draw = false;
|
||||
}
|
||||
|
||||
void CPlayerUIBase::LButtonDown(CPoint point)
|
||||
{
|
||||
for (auto& btn : m_buttons)
|
||||
{
|
||||
if(btn.second.rect.PtInRect(point) != FALSE)
|
||||
btn.second.pressed = true;
|
||||
}
|
||||
}
|
||||
|
||||
void CPlayerUIBase::RButtonUp(CPoint point)
|
||||
{
|
||||
if (m_buttons[BTN_VOLUME].rect.PtInRect(point) == FALSE)
|
||||
@@ -61,6 +70,15 @@ void CPlayerUIBase::MouseMove(CPoint point)
|
||||
|
||||
void CPlayerUIBase::LButtonUp(CPoint point)
|
||||
{
|
||||
for (auto& btn : m_buttons)
|
||||
{
|
||||
//if (btn.second.rect.PtInRect(point) != FALSE)
|
||||
//{
|
||||
btn.second.hover = false;
|
||||
btn.second.pressed = false;
|
||||
//}
|
||||
}
|
||||
|
||||
if (m_buttons[BTN_REPETEMODE].rect.PtInRect(point)) //点击了“循环模式”时,设置循环模式
|
||||
{
|
||||
theApp.m_player.SetRepeatMode();
|
||||
@@ -83,25 +101,21 @@ void CPlayerUIBase::LButtonUp(CPoint point)
|
||||
|
||||
if (m_buttons[BTN_SKIN].rect.PtInRect(point))
|
||||
{
|
||||
m_buttons[BTN_SKIN].hover = false;
|
||||
theApp.m_pMainWnd->SendMessage(WM_COMMAND, ID_SWITCH_UI);
|
||||
}
|
||||
|
||||
if (m_buttons[BTN_EQ].rect.PtInRect(point))
|
||||
{
|
||||
m_buttons[BTN_EQ].hover = false;
|
||||
theApp.m_pMainWnd->SendMessage(WM_COMMAND, ID_EQUALIZER);
|
||||
}
|
||||
|
||||
if (m_buttons[BTN_SETTING].rect.PtInRect(point))
|
||||
{
|
||||
m_buttons[BTN_SETTING].hover = false;
|
||||
theApp.m_pMainWnd->SendMessage(WM_COMMAND, ID_OPTION_SETTINGS);
|
||||
}
|
||||
|
||||
if (m_buttons[BTN_MINI].rect.PtInRect(point))
|
||||
{
|
||||
m_buttons[BTN_MINI].hover = false;
|
||||
theApp.m_pMainWnd->SendMessage(WM_COMMAND, ID_MINI_MODE);
|
||||
}
|
||||
|
||||
@@ -161,6 +175,7 @@ void CPlayerUIBase::PreDrawInfo()
|
||||
m_colors.color_spectrum_cover = theApp.m_app_setting_data.theme_color.original_color;
|
||||
m_colors.color_spectrum_back = theApp.m_app_setting_data.theme_color.dark1;
|
||||
m_colors.color_button_back = theApp.m_app_setting_data.theme_color.dark3;
|
||||
m_colors.color_button_pressed = theApp.m_app_setting_data.theme_color.light2;
|
||||
|
||||
m_colors.background_transparency = theApp.m_app_setting_data.background_transparency;
|
||||
}
|
||||
@@ -177,6 +192,7 @@ void CPlayerUIBase::PreDrawInfo()
|
||||
m_colors.color_spectrum_cover = theApp.m_app_setting_data.theme_color.original_color;
|
||||
m_colors.color_spectrum_back = theApp.m_app_setting_data.theme_color.light3;
|
||||
m_colors.color_button_back = theApp.m_app_setting_data.theme_color.light2;
|
||||
m_colors.color_button_pressed = theApp.m_app_setting_data.theme_color.dark1;
|
||||
|
||||
m_colors.background_transparency = theApp.m_app_setting_data.background_transparency;
|
||||
}
|
||||
@@ -403,8 +419,11 @@ void CPlayerUIBase::DrawControlBar(bool draw_background, CRect rect, bool draw_t
|
||||
alpha = ALPHA_CHG(m_colors.background_transparency);
|
||||
else
|
||||
alpha = 255;
|
||||
if (m_buttons[BTN_REPETEMODE].hover)
|
||||
if (m_buttons[BTN_REPETEMODE].pressed && m_buttons[BTN_REPETEMODE].hover)
|
||||
m_draw.FillAlphaRect(rc_repeat_mode, m_colors.color_button_pressed, alpha);
|
||||
else if (m_buttons[BTN_REPETEMODE].hover)
|
||||
m_draw.FillAlphaRect(rc_repeat_mode, m_colors.color_text_2, alpha);
|
||||
|
||||
//else if (!theApp.m_app_setting_data.dark_mode)
|
||||
// m_draw.FillAlphaRect(rc_repeat_mode, m_colors.color_button_back, alpha);
|
||||
|
||||
@@ -605,8 +624,11 @@ void CPlayerUIBase::DrawUIButton(CRect rect, UIButton & btn, HICON icon, bool dr
|
||||
alpha = ALPHA_CHG(m_colors.background_transparency);
|
||||
else
|
||||
alpha = 255;
|
||||
if (btn.hover)
|
||||
if(btn.pressed && btn.hover)
|
||||
m_draw.FillAlphaRect(rc_tmp, m_colors.color_button_pressed, alpha);
|
||||
else if (btn.hover)
|
||||
m_draw.FillAlphaRect(rc_tmp, m_colors.color_text_2, alpha);
|
||||
|
||||
//else if (!theApp.m_app_setting_data.dark_mode)
|
||||
// m_draw.FillAlphaRect(rc_tmp, m_colors.color_button_back, alpha);
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
COLORREF color_spectrum_cover; //有专辑封面时的频谱分析柱形的颜色
|
||||
COLORREF color_spectrum_back; //频谱分析的背景颜色
|
||||
COLORREF color_button_back; //歌词翻译按钮的背景色
|
||||
COLORREF color_button_pressed; //按钮按下的颜色
|
||||
int background_transparency; //背景不透明度0~100
|
||||
};
|
||||
|
||||
@@ -57,6 +58,7 @@ public:
|
||||
virtual void Init(CDC* pDC) override;
|
||||
virtual void DrawInfo(bool reset = false) override;
|
||||
|
||||
virtual void LButtonDown(CPoint point) override;
|
||||
virtual void RButtonUp(CPoint point) override;
|
||||
virtual void MouseMove(CPoint point) override;
|
||||
virtual void LButtonUp(CPoint point) override;
|
||||
|
||||
@@ -8,7 +8,8 @@ public:
|
||||
{
|
||||
CRect rect; //按钮的矩形区域
|
||||
bool hover{ false }; //鼠标是否指向按钮
|
||||
bool last_hover{ false };
|
||||
//bool last_hover{ false };
|
||||
bool pressed{ false }; //按钮是否按下
|
||||
bool enable{ true }; //按钮是否启用
|
||||
};
|
||||
|
||||
@@ -19,6 +20,7 @@ public:
|
||||
virtual void Init(CDC* pDC) = 0;
|
||||
virtual void DrawInfo(bool reset = false) = 0;
|
||||
|
||||
virtual void LButtonDown(CPoint point) = 0;
|
||||
virtual void RButtonUp(CPoint point) = 0;
|
||||
virtual void MouseMove(CPoint point) = 0;
|
||||
virtual void LButtonUp(CPoint point) = 0;
|
||||
|
||||
@@ -216,6 +216,8 @@ void CMiniModeDlg::OnLButtonDown(UINT nFlags, CPoint point)
|
||||
if(!m_ui.PointInControlArea(point))
|
||||
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
|
||||
|
||||
m_ui.LButtonDown(point);
|
||||
|
||||
CDialogEx::OnLButtonDown(nFlags, point);
|
||||
}
|
||||
|
||||
|
||||
@@ -273,6 +273,7 @@ BEGIN_MESSAGE_MAP(CMusicPlayerDlg, CDialog)
|
||||
ON_COMMAND(ID_MENU_EXIT, &CMusicPlayerDlg::OnMenuExit)
|
||||
ON_COMMAND(ID_MINIMODE_RESTORE, &CMusicPlayerDlg::OnMinimodeRestore)
|
||||
ON_WM_APPCOMMAND()
|
||||
ON_WM_LBUTTONDOWN()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
@@ -2599,6 +2600,15 @@ void CMusicPlayerDlg::OnLButtonUp(UINT nFlags, CPoint point)
|
||||
}
|
||||
|
||||
|
||||
void CMusicPlayerDlg::OnLButtonDown(UINT nFlags, CPoint point)
|
||||
{
|
||||
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||
m_pUI->LButtonDown(point);
|
||||
|
||||
CDialog::OnLButtonDown(nFlags, point);
|
||||
}
|
||||
|
||||
|
||||
HBRUSH CMusicPlayerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
@@ -3241,3 +3251,4 @@ void CMusicPlayerDlg::OnAppCommand(CWnd* pWnd, UINT nCmd, UINT nDevice, UINT nKe
|
||||
|
||||
CDialog::OnAppCommand(pWnd, nCmd, nDevice, nKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -303,4 +303,5 @@ public:
|
||||
afx_msg void OnMenuExit();
|
||||
afx_msg void OnMinimodeRestore();
|
||||
afx_msg void OnAppCommand(CWnd* pWnd, UINT nCmd, UINT nDevice, UINT nKey);
|
||||
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user