⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setuppropdlg.cpp

📁 本人买的<<VC++项目开发实例>>源代码配套光盘.
💻 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 + -