📄 setuppropdlg.cpp
字号:
// SetupPropDlg.cpp : implementation file
//
#include "stdafx.h"
#include "WMVC.h"
#include "SetupPropDlg.h"
#include "Configration.h"
#include "IMMEnum.h" //for CIMMEnum
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetupPropDlg property page
IMPLEMENT_DYNCREATE(CSetupPropDlg, CPropertyPage)
CSetupPropDlg::CSetupPropDlg() : CPropertyPage(CSetupPropDlg::IDD)
{
//{{AFX_DATA_INIT(CSetupPropDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_hIcons[0] = AfxGetApp()->LoadIcon(IDI_BULBON);
m_hIcons[1] = AfxGetApp()->LoadIcon(IDI_BULBOFF);
//增加图标
m_psp.dwFlags |= PSP_USEHICON;
//注意必须要PropertySheet和PropertyPage中同时去除PSP_HASHELP才可以。
m_psp.dwFlags &= ~PSP_HASHELP;
m_psp.hIcon = m_hIcons[0];
}
CSetupPropDlg::~CSetupPropDlg()
{
}
void CSetupPropDlg::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetupPropDlg)
DDX_Control(pDX, IDC_IME, m_cmbIME);
DDX_Control(pDX, IDC_HOTKEY, m_hotkey);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetupPropDlg, CPropertyPage)
//{{AFX_MSG_MAP(CSetupPropDlg)
ON_BN_CLICKED(IDC_ASSIGN, OnAssign)
ON_CBN_SELCHANGE(IDC_IME, OnSelchangeIme)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetupPropDlg message handlers
BOOL CSetupPropDlg::OnInitDialog()
{
CPropertyPage::OnInitDialog();
extern CConfigration config;
WORD vk = 0, md = 0;
vk = LOWORD(config.m_dwHotKey);
md = HIWORD(config.m_dwHotKey);
m_hotkey.SetHotKey(vk, HKF2SDK(md));
//加载输入法
const CStringList *pListIMMs = &m_immEnum.GetIMMs();
POSITION pos = pListIMMs->GetHeadPosition();
int nIndex = -1;
while(pos)
{
nIndex ++;
if ((HKL)config.m_dwKeyboardLayout == m_immEnum.GetKeyboardLayouts()[nIndex])
{
m_cmbIME.PostMessage(CB_SETCURSEL, nIndex);
}
m_cmbIME.InsertString(-1, pListIMMs->GetAt(pos));
pListIMMs->GetNext(pos);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetupPropDlg::OnAssign()
{
WORD md, vk;
extern CConfigration config;
m_hotkey.GetHotKey(vk, md);
BOOL bRst = RegisterHotKey(AfxGetMainWnd()->m_hWnd, IDHOTKEY, HKF2SDK(md), vk);
if (!bRst)
{
AfxMessageBox("注册快捷键失败!");
return;
}
config.m_dwHotKey = MAKELONG(vk, HKF2SDK(md));
}
void CSetupPropDlg::OnSelchangeIme()
{
extern CConfigration config;
int nIndex = m_cmbIME.GetCurSel();
if (-1 != nIndex)
{
config.m_dwKeyboardLayout = (DWORD)m_immEnum.GetKeyboardLayouts()[nIndex];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -