界面按钮增加按下效果

This commit is contained in:
zhongyang
2019-01-14 21:19:44 +08:00
parent b4946bd872
commit fa4e96d1ca
8 changed files with 71 additions and 10 deletions
+22 -3
View File
@@ -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);
+2
View File
@@ -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);
+28 -6
View File
@@ -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);
+2
View File
@@ -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;
+3 -1
View File
@@ -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;
+2
View File
@@ -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);
}
+11
View File
@@ -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);
}
+1
View File
@@ -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);
};