VC捕获键盘消息

在VC中为程序、窗口添加快捷键可以分为两种情况,一是添加全局的Windows快捷键,二是为指定窗口或控件添加快捷键。如下:

一、添加全局的Windows快捷键。

主要用到的API是:RegisterHotKey,具体详见MSDN。

二、为指定窗口或控件添加快捷键

通常,可以重载PreTranslateMessage函数来实现功能。

这里举个例子,在PreTranslateMessage函数中实现一些快捷键,在一个视频播放器中添加快捷键,如下:

BOOL CShowVideo::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
//捕获键盘按键的消息
if (pMsg->message == WM_KEYDOWN)
{
//捕获键盘Esc键的消息
if (pMsg->wParam == VK_ESCAPE)
{
//全屏时,就退出全屏
if (g_pMainWnd->m_bFullScreen)
{
FullScreenOrNot(false);
}
//不是全屏时,就退出程序
else
{
g_pMainWnd->OnClose();
}
return TRUE;
}

//按下Enter键时
if (pMsg->wParam == VK_RETURN)
{
if (::GetKeyState(VK_CONTROL) < 0) //同时按下Ctrl+Enter时
{
if (g_pMainWnd->m_bPlaying)
{
if (g_pMainWnd->m_bFullScreen)
{
FullScreenOrNot(false); //退出全屏
}
else
{
FullScreenOrNot(true); //全屏
}
}
}
return TRUE;
}

//按下空格键时
if (pMsg->wParam == VK_SPACE)
{
if (g_pMainWnd->m_bPlaying)
{
OnBnClickedBtnPlayOrPause(); //暂停或继续播放

}
return TRUE;
}
}

return CBCGPDialog::PreTranslateMessage(pMsg);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值