📄 keyboarddlg.cpp
字号:
// keyboardDlg.cpp : implementation file
//
#include "stdafx.h"
#include "keyboard.h"
#include "keyboardDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CKeyboardDlg dialog
CKeyboardDlg::CKeyboardDlg(CWnd* pParent /*=NULL*/)
: CDialog(CKeyboardDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CKeyboardDlg)
m_keydown = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CKeyboardDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CKeyboardDlg)
DDX_Text(pDX, IDC_KEY, m_keydown);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CKeyboardDlg, CDialog)
//{{AFX_MSG_MAP(CKeyboardDlg)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CKeyboardDlg message handlers
BOOL CKeyboardDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
BOOL CKeyboardDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
CString str;
// m_CtrlKeyTrace.blur(); //lose focus
if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST)
{
if(pMsg->message!=WM_CHAR)
{
switch(pMsg->wParam)
{
case VK_F7:
str.Format(_T("F7"));
break;
case VK_NUMPAD8:
str.Format(_T("8"));
break;
case VK_ESCAPE:
str.Format(_T("ESCAPE"));
break;
case VK_RIGHT:
str.Format(_T("RIGHT"));
break;
case VK_UP:
str.Format(_T("UP"));
break;
case VK_F4:
str.Format(_T("F4"));
break;
///////////////////
case VK_RETURN:
str.Format(_T("RETURN"));
break;
case VK_NUMPAD9:
str.Format(_T("9"));
break;
case VK_F5:
str.Format(_T("F5"));
break;
case VK_BACK:
str.Format(_T("BACK"));
break;
case VK_NUMPAD3:
str.Format(_T("3"));
break;
case VK_F2:
str.Format(_T("F2"));
break;
////////////////////
case VK_F10:
str.Format(_T("F10"));
break;
case VK_DOWN:
str.Format(_T("DOWN"));
break;
case VK_NUMPAD4:
str.Format(_T("4"));
break;
case VK_LEFT:
str.Format(_T("LEFT"));
break;
case VK_NUMPAD2:
str.Format(_T("2"));
break;
case VK_F3:
str.Format(_T("F3"));
break;
///////////////////
case VK_NUMPAD0 :
str.Format(_T("0"));
break;
case VK_NUMPAD7:
str.Format(_T("7"));
break;
case VK_NUMPAD5:
str.Format(_T("5"));
break;
case VK_NUMPAD6:
str.Format(_T("6"));
break;
case VK_NUMPAD1:
str.Format(_T("1"));
break;
case VK_F1:
str.Format(_T("F1"));
break;
/////////////////
case VK_F6:
str.Format(_T("F6"));
break;
//此处添加对其他(非)字符A-Z英文字母按键的检测
//如F8,F9等等
case VK_F8:
str.Format(_T("F8"));
break;
case VK_F9:
str.Format(_T("F9"));
break;
case VK_F11:
str.Format(_T("F11"));
break;
case VK_F12:
str.Format(_T("F12"));
break;
case VK_TAB :
str.Format(_T("TAB "));
break;
case VK_SHIFT :
str.Format(_T("SHIFT"));
break;
case VK_CONTROL:
str.Format(_T("CONTROL "));
break;
case VK_PAUSE:
str.Format(_T("PAUSE"));
break;
case VK_CAPITAL:
str.Format(_T("CAPS LOCK key"));
break;
case VK_SPACE:
str.Format(_T("SPACE"));
break;
case VK_PRIOR :
str.Format(_T("PAGE UP key"));
break;
case VK_NEXT:
str.Format(_T("PAGE DOWN key"));
break;
case VK_END:
str.Format(_T("END"));
break;
case VK_HOME:
str.Format(_T("HOME"));
break;
case VK_SELECT:
str.Format(_T("SELECT"));
break;
case VK_SNAPSHOT:
str.Format(_T("PRINT SCREEN key"));
break;
case VK_INSERT:
str.Format(_T("INSERT"));
break;
case VK_DELETE :
str.Format(_T("DELETE"));
break;
case VK_HELP:
str.Format(_T("HELP"));
break;
case VK_ADD:
str.Format(_T("ADD"));
break;
case VK_SEPARATOR :
str.Format(_T("SEPARATOR "));
break;
case VK_SUBTRACT :
str.Format(_T("SUBTRACT "));
break;
case VK_DECIMAL:
str.Format(_T("DECIMAL"));
break;
case VK_DIVIDE:
str.Format(_T("DIVIDE "));
break;
case VK_NUMLOCK:
str.Format(_T("NUMLOCK"));
break;
case VK_LSHIFT:
str.Format(_T("LSHIFT"));
break;
case VK_RSHIFT:
str.Format(_T("RSHIFT"));
break;
case VK_LCONTROL:
str.Format(_T("LCONTROL"));
break;
case VK_RCONTROL:
str.Format(_T("RCONTROL"));
break;
case VK_LMENU:
str.Format(_T("LMENU"));
break;
case VK_RMENU:
str.Format(_T("RMENU"));
break;
case VK_ATTN :
str.Format(_T("ATTN "));
break;
case VK_SCROLL :
str.Format(_T("SCROLL LOCK key"));
break;
case VK_MULTIPLY :
str.Format(_T("MULTIPLY "));
break;
case VK_CANCEL :
str.Format(_T("CANCEL"));
break;
/*
case:
str.Format(_T(""));
break;
case:
str.Format(_T(""));
break;
case :
str.Format(_T(""));
break;
case:
str.Format(_T(""));
break;
case:
str.Format(_T(""));
break;
*/
default :
str.Format(_T("%c"),pMsg->wParam);
break;
}
}
else
{
if(((CHAR(pMsg->wParam)>='a')&&(CHAR(pMsg->wParam)<='z'))||((CHAR(pMsg->wParam)>='A')&&(CHAR(pMsg->wParam)<='Z')))
str=CHAR(pMsg->wParam);
else if(((CHAR(pMsg->wParam)>='0')&&(CHAR(pMsg->wParam)<='9')))
str.Format(_T("%c"),pMsg->wParam);
else
str.Format(_T("不是字符按键"));
}
if(pMsg->wParam!=VK_F18)
{
switch(pMsg->message)
{
case WM_KEYDOWN:
str+=" KEY_DOWN";
break;
case WM_KEYUP:
str+=" KEY_UP";
break;
case WM_CHAR:
str+=" KEY_CHAR";
break;
case WM_DEADCHAR:
str+=" WM_SYSCHAR";
break;
case WM_SYSDEADCHAR:
str+=" WM_SYSDEADCHAR";
break;
case WM_SYSKEYDOWN:
str+=" WM_SYSKEYDOWN";
break;
case WM_SYSKEYUP:
str+=" WM_SYSKEYUP";
break;
default:
str+=" unkown";
break;
}
str+="\r\n";
m_keydown=m_keydown+str;
UpdateData(false);
}
}
else if(pMsg->message == WM_KILLFOCUS){
AfxMessageBox(L"ERROR");
}
return CDialog::PreTranslateMessage(pMsg);
}
void CKeyboardDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_keydown="";
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -