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

📄 keyboarddlg.cpp

📁 EVC 4.0 下开发的WinCE 简单的键盘测试程序
💻 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 + -