#pragma once class COptionsShortCutsPage : public CSettingsPageImpl, public CSettingsPage { typedef CMenuShortCutKey::RUNNING_STATE RUNNING_STATE; typedef CShortCutItem::SHORTCUT_KEY_LIST SHORTCUT_KEY_LIST; BEGIN_MSG_MAP_EX(COptionsShortCutsPage) COMMAND_HANDLER_EX(IDC_C_CPU_STATE,LBN_SELCHANGE,OnCpuStateChanged); NOTIFY_HANDLER_EX(IDC_MENU_ITEMS,TVN_SELCHANGED,OnMenuItemChanged); COMMAND_HANDLER_EX(IDC_REMOVE,BN_CLICKED,OnRemoveClicked) COMMAND_HANDLER_EX(IDC_KEY_PROMPT,BN_CLICKED,OnDetectKeyClicked) COMMAND_HANDLER_EX(IDC_ASSIGN,BN_CLICKED,OnAssignClicked) COMMAND_HANDLER_EX(IDC_CTL,BN_CLICKED,OnShortCutChanged) COMMAND_HANDLER_EX(IDC_ALT,BN_CLICKED,OnShortCutChanged) COMMAND_HANDLER_EX(IDC_SHIFT,BN_CLICKED,OnShortCutChanged) COMMAND_HANDLER_EX(IDC_VIRTUALKEY,LBN_SELCHANGE,OnShortCutChanged) END_MSG_MAP() enum { IDD = IDD_Settings_Accelerator }; public: COptionsShortCutsPage(HWND hParent, const RECT & rcDispay ); LanguageStringID PageTitle ( void ) { return TAB_SHORTCUTS; } void HidePage ( void ); void ShowPage ( void ); void ApplySettings ( bool UpdateScreen ); bool EnableReset ( void ); void ResetPage ( void ); private: void OnCpuStateChanged ( UINT Code, int id, HWND ctl ); void OnRemoveClicked ( UINT Code, int id, HWND ctl ); void OnDetectKeyClicked ( UINT Code, int id, HWND ctl ); void OnAssignClicked ( UINT Code, int id, HWND ctl ); void OnShortCutChanged ( UINT Code, int id, HWND ctl ); LRESULT OnMenuItemChanged ( LPNMHDR lpnmh ); void RefreshShortCutOptions ( HTREEITEM hItem ); void InputGetKeys ( void ); void CheckResetEnable ( void ); static void stInputGetKeys (COptionsShortCutsPage * _this ) { _this->InputGetKeys(); } CPartialGroupBox m_CreateNewShortCut; CComboBox m_CpuState, m_VirtualKeyList; CShortCuts m_ShortCuts; CTreeViewCtrl m_MenuItems; CListBox m_CurrentKeys; bool m_EnableReset; };