1.添加Windows SDK头文件#include “windows.h”
2.头文件重载函数keyPressEvent和keyReleaseEvent
3.添加 WINSDK\lib\User32.lib和WINSDK\include引用
代码块
代码块以MainWindow状态栏显示监测到大写小写,例如:
void
MainWindow::keyPressEvent(QKeyEvent* event)
{
if (event->key() == Qt::Key_CapsLock)
{
if (LOBYTE(GetKeyState(VK_CAPITAL)))
{
_capsStatus->setText(QStringLiteral("大写"));
}
else
{
_capsStatus->setText(QStringLiteral("小写"));
}
}
QMainWindow::keyPressEvent(event);
}
void
MainWindow::keyReleaseEvent(QKeyEvent* event)
{
if (event->key() == Qt::Key_CapsLock)
{
if (LOBYTE(GetKeyState(VK_CAPITAL)))
{
_capsStatus->setText(QStringLiteral("大写"));
}
else
{
_capsStatus->setText(QStringLiteral("小写"));
}
}
QMainWindow::keyReleaseEvent(event);
}
注意:
1.GetKeyState是WinSDK下的API函数。
2._capsStatus是状态栏标识当前caps lock状态静态文本控件
实现效果: