|
|
@@ -888,12 +888,16 @@ void CSettingPageUI::InitShow()
|
|
|
box_youtu->Selected(false, false);
|
|
|
box_wutu->Selected(true, false);
|
|
|
}
|
|
|
+
|
|
|
+ //初始化快捷键展示
|
|
|
+ this->InitKuaijiejianShow();
|
|
|
}
|
|
|
|
|
|
//处理按钮点击类事件
|
|
|
void CSettingPageUI::HandleClickMsg(TNotifyUI& msg)
|
|
|
{
|
|
|
CDuiString name = msg.pSender->GetName();
|
|
|
+ std::wstring ws_name = name;
|
|
|
|
|
|
//开始处理设置页面的
|
|
|
if (name == _T("setting_is_new_waimai_voice"))
|
|
|
@@ -1503,6 +1507,39 @@ void CSettingPageUI::HandleClickMsg(TNotifyUI& msg)
|
|
|
//退出登录
|
|
|
m_pMainWnd->LoginOut(1);
|
|
|
}
|
|
|
+ else if (ws_name.find(L"setting_kuaijiejian_page_btn_") == 0)
|
|
|
+ {
|
|
|
+ //这个时候设置快捷键的状态和类型
|
|
|
+ m_mod = 0;
|
|
|
+ m_vk = 0;
|
|
|
+ m_isSet = false;
|
|
|
+
|
|
|
+ if (m_pMainWnd->GetIsKuaijiejianSetting() == false)
|
|
|
+ {
|
|
|
+ m_pMainWnd->SetIsKuaijiejianSetting(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (name == L"setting_kuaijiejian_page_btn_weixinshoukuan")
|
|
|
+ {
|
|
|
+ m_kuaijiejian_type = 1;
|
|
|
+ }
|
|
|
+ else if (name == L"setting_kuaijiejian_page_btn_huiyuandenglu")
|
|
|
+ {
|
|
|
+ m_kuaijiejian_type = 2;
|
|
|
+ }
|
|
|
+ else if (name == L"setting_kuaijiejian_page_btn_huiyuanshoukuan")
|
|
|
+ {
|
|
|
+ m_kuaijiejian_type = 3;
|
|
|
+ }
|
|
|
+ else if (name == L"setting_kuaijiejian_page_btn_xianjinshoukuan")
|
|
|
+ {
|
|
|
+ m_kuaijiejian_type = 4;
|
|
|
+ }
|
|
|
+ else if (name == L"setting_kuaijiejian_page_btn_qianxiang")
|
|
|
+ {
|
|
|
+ m_kuaijiejian_type = 5;
|
|
|
+ }
|
|
|
+ }
|
|
|
else if (name == L"setting_tongbu_btn")
|
|
|
{
|
|
|
StartTongbu();
|
|
|
@@ -1563,16 +1600,25 @@ void CSettingPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
|
|
|
CLabelUI* label = static_cast<CLabelUI*>(this->FindSubControl(L"setting_tongbu_result"));
|
|
|
label->SetVisible(false);
|
|
|
}
|
|
|
- else if (name == _T("setting_system_switch"))
|
|
|
+ else if (name == _T("setting_kuaijiejian_switch"))
|
|
|
{
|
|
|
CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
|
|
|
pControl->SelectItem(9);
|
|
|
+
|
|
|
+ CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_weixinshoukuan")));
|
|
|
+
|
|
|
+ m_pManager->SetFocus(NULL);
|
|
|
}
|
|
|
- else if (name == _T("setting_system_about"))
|
|
|
+ else if (name == _T("setting_system_switch"))
|
|
|
{
|
|
|
CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
|
|
|
pControl->SelectItem(10);
|
|
|
}
|
|
|
+ else if (name == _T("setting_system_about"))
|
|
|
+ {
|
|
|
+ CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
|
|
|
+ pControl->SelectItem(11);
|
|
|
+ }
|
|
|
else if (name == _T("xianshi_setting_youtu"))
|
|
|
{
|
|
|
CSetting::GetInstance()->SetParam("setting_xianshi_is_youtu", "1");
|
|
|
@@ -1882,10 +1928,163 @@ bool CSettingPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam
|
|
|
label->SetText(m_tongbu_error.c_str());
|
|
|
label->SetVisible(true);
|
|
|
}
|
|
|
+ else if (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN || uMsg == WM_KEYUP || uMsg == WM_SYSKEYUP)
|
|
|
+ {
|
|
|
+ //处理热键的键盘消息
|
|
|
+ if (m_pMainWnd->GetIsKuaijiejianSetting() == true)
|
|
|
+ {
|
|
|
+ //正在设置快捷键
|
|
|
+ return OnHotKeyDown(uMsg, wParam, lParam);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+bool CSettingPageUI::OnHotKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
|
+{
|
|
|
+ if (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN)
|
|
|
+ {
|
|
|
+ if (wParam != VK_CONTROL && wParam != VK_MENU && wParam != VK_SHIFT)
|
|
|
+ {
|
|
|
+ //这个情况,按的是字母键之类的
|
|
|
+ CDuiString duiText;
|
|
|
+
|
|
|
+ if (VK_F1 <= wParam && wParam <= VK_F12)
|
|
|
+ {
|
|
|
+ //快捷键就是F1到F12,不需要搭配ctrl之类的
|
|
|
+ m_mod = 0;
|
|
|
+ duiText.Format(_T("F%d"), wParam - VK_F1 + 1);
|
|
|
+ }
|
|
|
+ else if (m_mod == MOD_CONTROL)
|
|
|
+ {
|
|
|
+ duiText.Format(_T("CTRL + %c"), wParam);
|
|
|
+ }
|
|
|
+ else if (m_mod == MOD_ALT)
|
|
|
+ {
|
|
|
+ duiText.Format(_T("ALT + %c"), wParam);
|
|
|
+ }
|
|
|
+ else if (m_mod == MOD_SHIFT)
|
|
|
+ {
|
|
|
+ duiText.Format(_T("SHIFT + %c"), wParam);
|
|
|
+ }
|
|
|
+ else if (m_mod == 0)
|
|
|
+ {
|
|
|
+ //直接按的字母键,无效
|
|
|
+ m_mod = 0;
|
|
|
+ m_vk = 0;
|
|
|
+ m_isSet = false;
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ //到这里来设置成功了,做展示
|
|
|
+ if (m_kuaijiejian_type == 1)
|
|
|
+ {
|
|
|
+ CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_weixinshoukuan")));
|
|
|
+ focusEdit->SetText(duiText);
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 2)
|
|
|
+ {
|
|
|
+ CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuandenglu")));
|
|
|
+ focusEdit->SetText(duiText);
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 3)
|
|
|
+ {
|
|
|
+ CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuanshoukuan")));
|
|
|
+ focusEdit->SetText(duiText);
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 4)
|
|
|
+ {
|
|
|
+ CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_xianjinshoukuan")));
|
|
|
+ focusEdit->SetText(duiText);
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 5)
|
|
|
+ {
|
|
|
+ CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_qianxiang")));
|
|
|
+ focusEdit->SetText(duiText);
|
|
|
+ }
|
|
|
+
|
|
|
+ m_vk = wParam;
|
|
|
+ m_isSet = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //按的是控制键,这里只支持3选1,不能更多组合
|
|
|
+ if (wParam == VK_CONTROL)
|
|
|
+ {
|
|
|
+ m_mod = MOD_CONTROL;
|
|
|
+ }
|
|
|
+ else if (wParam == VK_MENU)
|
|
|
+ {
|
|
|
+ m_mod = MOD_ALT;
|
|
|
+ }
|
|
|
+ else if (wParam == VK_SHIFT)
|
|
|
+ {
|
|
|
+ m_mod = MOD_SHIFT;
|
|
|
+ }
|
|
|
+
|
|
|
+ m_isSet = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (uMsg == WM_KEYUP || uMsg == WM_SYSKEYUP)
|
|
|
+ {
|
|
|
+ //这个是只按了控制键,没有按其他的键
|
|
|
+ if (!m_isSet)
|
|
|
+ {
|
|
|
+ if (wParam == VK_CONTROL)
|
|
|
+ {
|
|
|
+ m_mod = 0;
|
|
|
+ }
|
|
|
+ else if (wParam == VK_MENU)
|
|
|
+ {
|
|
|
+ m_mod = 0;
|
|
|
+ }
|
|
|
+ else if (wParam == VK_SHIFT)
|
|
|
+ {
|
|
|
+ m_mod = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //这里表示已经设置好了,等后面保存
|
|
|
+ if (wParam != VK_CONTROL && wParam != VK_MENU && wParam != VK_SHIFT)
|
|
|
+ {
|
|
|
+ //准备开始注册热键了
|
|
|
+ if (m_kuaijiejian_type == 1)
|
|
|
+ {
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_weixinshoukuan_mod", to_string(m_mod));
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_weixinshoukuan_vk", to_string(m_vk));
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 2)
|
|
|
+ {
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuandenglu_mod", to_string(m_mod));
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuandenglu_vk", to_string(m_vk));
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 3)
|
|
|
+ {
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuanshoukuan_mod", to_string(m_mod));
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuanshoukuan_vk", to_string(m_vk));
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 4)
|
|
|
+ {
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_xianjinshoukuan_mod", to_string(m_mod));
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_xianjinshoukuan_vk", to_string(m_vk));
|
|
|
+ }
|
|
|
+ else if (m_kuaijiejian_type == 5)
|
|
|
+ {
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_qianxiang_mod", to_string(m_mod));
|
|
|
+ CSetting::GetInstance()->SetParam("setting_kuaijiejian_qianxiang_vk", to_string(m_vk));
|
|
|
+ }
|
|
|
+
|
|
|
+ m_pMainWnd->UpdateRegisterHotKey();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
void CSettingPageUI::StartTongbuBiaoqiancheng()
|
|
|
{
|
|
|
std::thread(&CSettingPageUI::HandleTongbuBiaoqiancheng, this).detach();
|
|
|
@@ -2322,4 +2521,128 @@ void CSettingPageUI::HandleTongbu()
|
|
|
}
|
|
|
|
|
|
::PostMessage(m_pManager->GetPaintWindow(), WM_SETTING_TONGBU_SUCCESS, 0, 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CSettingPageUI::InitKuaijiejianShow()
|
|
|
+{
|
|
|
+ //初始化快捷键的展示
|
|
|
+ UINT weixinshoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_weixinshoukuan_mod").c_str());
|
|
|
+ UINT weixinshoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_weixinshoukuan_vk").c_str());
|
|
|
+
|
|
|
+ UINT huiyuandenglu_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuandenglu_mod").c_str());
|
|
|
+ UINT huiyuandenglu_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuandenglu_vk").c_str());
|
|
|
+
|
|
|
+ UINT huiyuanshoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuanshoukuan_mod").c_str());
|
|
|
+ UINT huiyuanshoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuanshoukuan_vk").c_str());
|
|
|
+
|
|
|
+ UINT xianjinshoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_xianjinshoukuan_mod").c_str());
|
|
|
+ UINT xianjinshoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_xianjinshoukuan_vk").c_str());
|
|
|
+
|
|
|
+ UINT qianxiang_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_qianxiang_mod").c_str());
|
|
|
+ UINT qianxiang_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_qianxiang_vk").c_str());
|
|
|
+
|
|
|
+ CDuiString weixinshoukuan_info;
|
|
|
+ if (weixinshoukuan_mod == MOD_CONTROL)
|
|
|
+ {
|
|
|
+ weixinshoukuan_info.Format(_T("CTRL + %c"), weixinshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (weixinshoukuan_mod == MOD_ALT)
|
|
|
+ {
|
|
|
+ weixinshoukuan_info.Format(_T("ALT + %c"), weixinshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (weixinshoukuan_mod == MOD_SHIFT)
|
|
|
+ {
|
|
|
+ weixinshoukuan_info.Format(_T("SHIFT + %c"), weixinshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (weixinshoukuan_mod == 0)
|
|
|
+ {
|
|
|
+ weixinshoukuan_info.Format(_T("F%d"), weixinshoukuan_vk - VK_F1 + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ CButtonUI* shoukuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_weixinshoukuan")));
|
|
|
+ shoukuan_edit->SetText(weixinshoukuan_info);
|
|
|
+
|
|
|
+ CDuiString huiyuandenglu_info;
|
|
|
+ if (huiyuandenglu_mod == MOD_CONTROL)
|
|
|
+ {
|
|
|
+ huiyuandenglu_info.Format(_T("CTRL + %c"), huiyuandenglu_vk);
|
|
|
+ }
|
|
|
+ else if (huiyuandenglu_mod == MOD_ALT)
|
|
|
+ {
|
|
|
+ huiyuandenglu_info.Format(_T("ALT + %c"), huiyuandenglu_vk);
|
|
|
+ }
|
|
|
+ else if (huiyuandenglu_mod == MOD_SHIFT)
|
|
|
+ {
|
|
|
+ huiyuandenglu_info.Format(_T("SHIFT + %c"), huiyuandenglu_vk);
|
|
|
+ }
|
|
|
+ else if (weixinshoukuan_mod == 0)
|
|
|
+ {
|
|
|
+ huiyuandenglu_info.Format(_T("F%d"), huiyuandenglu_vk - VK_F1 + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ CButtonUI* huiyuandenglu_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuandenglu")));
|
|
|
+ huiyuandenglu_edit->SetText(huiyuandenglu_info);
|
|
|
+
|
|
|
+ CDuiString huiyuanshoukuan_info;
|
|
|
+ if (huiyuanshoukuan_mod == MOD_CONTROL)
|
|
|
+ {
|
|
|
+ huiyuanshoukuan_info.Format(_T("CTRL + %c"), huiyuanshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (huiyuanshoukuan_mod == MOD_ALT)
|
|
|
+ {
|
|
|
+ huiyuanshoukuan_info.Format(_T("ALT + %c"), huiyuanshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (huiyuanshoukuan_mod == MOD_SHIFT)
|
|
|
+ {
|
|
|
+ huiyuanshoukuan_info.Format(_T("SHIFT + %c"), huiyuanshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (weixinshoukuan_mod == 0)
|
|
|
+ {
|
|
|
+ huiyuanshoukuan_info.Format(_T("F%d"), huiyuanshoukuan_vk - VK_F1 + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ CButtonUI* huiyuanshoukuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuanshoukuan")));
|
|
|
+ huiyuanshoukuan_edit->SetText(huiyuanshoukuan_info);
|
|
|
+
|
|
|
+ CDuiString xianjinshoukuan_info;
|
|
|
+ if (xianjinshoukuan_mod == MOD_CONTROL)
|
|
|
+ {
|
|
|
+ xianjinshoukuan_info.Format(_T("CTRL + %c"), xianjinshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (xianjinshoukuan_mod == MOD_ALT)
|
|
|
+ {
|
|
|
+ xianjinshoukuan_info.Format(_T("ALT + %c"), xianjinshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (xianjinshoukuan_mod == MOD_SHIFT)
|
|
|
+ {
|
|
|
+ xianjinshoukuan_info.Format(_T("SHIFT + %c"), xianjinshoukuan_vk);
|
|
|
+ }
|
|
|
+ else if (weixinshoukuan_mod == 0)
|
|
|
+ {
|
|
|
+ xianjinshoukuan_info.Format(_T("F%d"), xianjinshoukuan_vk - VK_F1 + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ CButtonUI* xianjinshoukuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_xianjinshoukuan")));
|
|
|
+ xianjinshoukuan_edit->SetText(xianjinshoukuan_info);
|
|
|
+
|
|
|
+ CDuiString qianxiang_info;
|
|
|
+ if (qianxiang_mod == MOD_CONTROL)
|
|
|
+ {
|
|
|
+ qianxiang_info.Format(_T("CTRL + %c"), qianxiang_vk);
|
|
|
+ }
|
|
|
+ else if (qianxiang_mod == MOD_ALT)
|
|
|
+ {
|
|
|
+ qianxiang_info.Format(_T("ALT + %c"), qianxiang_vk);
|
|
|
+ }
|
|
|
+ else if (qianxiang_mod == MOD_SHIFT)
|
|
|
+ {
|
|
|
+ qianxiang_info.Format(_T("SHIFT + %c"), qianxiang_vk);
|
|
|
+ }
|
|
|
+ else if (weixinshoukuan_mod == 0)
|
|
|
+ {
|
|
|
+ qianxiang_info.Format(_T("F%d"), qianxiang_vk - VK_F1 + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ CButtonUI* qianxiang_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_qianxiang")));
|
|
|
+ qianxiang_edit->SetText(qianxiang_info);
|
|
|
}
|