?? skbdlg.cpp
字號(hào):
// AADlg.cpp : implementation file
//
#include "stdafx.h"
#include "SKBDlg.h"
#include "resource.h"
#include <Winuser.h> ////// Uibase.lib
/////////////////////////////////////////////////////////////////////////////
// CSKBDlg dialog
/*
CSKBDlg::CSKBDlg(CWnd* pParent )
: CDialog(CSKBDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSKBDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pParentWnd = pParent; ////父窗口指針
IsLowerCase = TRUE; ////默認(rèn)小寫
m_pTargetWnd = NULL;
}
*/
void CSKBDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSKBDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSKBDlg, CDialog)
//{{AFX_MSG_MAP(CSKBDlg)
ON_BN_CLICKED(IDC_1, On1)
ON_BN_CLICKED(IDC_2, On2)
ON_BN_CLICKED(IDC_3, On3)
ON_BN_CLICKED(IDC_4, On4)
ON_BN_CLICKED(IDC_5, On5)
ON_BN_CLICKED(IDC_6, On6)
ON_BN_CLICKED(IDC_7, On7)
ON_BN_CLICKED(IDC_8, On8)
ON_BN_CLICKED(IDC_9, On9)
ON_BN_CLICKED(IDC_0, On0)
ON_BN_CLICKED(IDC_CAPSLOCK, OnCapslock)
ON_BN_CLICKED(IDC_A, OnA)
ON_BN_CLICKED(IDC_B, OnB)
ON_BN_CLICKED(IDC_C, OnC)
ON_BN_CLICKED(IDC_D, OnD)
ON_BN_CLICKED(IDC_E, OnE)
ON_BN_CLICKED(IDC_F, OnF)
ON_BN_CLICKED(IDC_G, OnG)
ON_BN_CLICKED(IDC_H, OnH)
ON_BN_CLICKED(IDC_I, OnI)
ON_BN_CLICKED(IDC_J, OnJ)
ON_BN_CLICKED(IDC_K, OnK)
ON_BN_CLICKED(IDC_L, OnL)
ON_BN_CLICKED(IDC_M, OnM)
ON_BN_CLICKED(IDC_N, OnN)
ON_BN_CLICKED(IDC_O, OnO)
ON_BN_CLICKED(IDC_P, OnP)
ON_BN_CLICKED(IDC_Q, OnQ)
ON_BN_CLICKED(IDC_R, OnR)
ON_BN_CLICKED(IDC_S, OnS)
ON_BN_CLICKED(IDC_T, OnT)
ON_BN_CLICKED(IDC_U, OnU)
ON_BN_CLICKED(IDC_V, OnV)
ON_BN_CLICKED(IDC_W, OnW)
ON_BN_CLICKED(IDC_X, OnX)
ON_BN_CLICKED(IDC_Y, OnY)
ON_BN_CLICKED(IDC_Z, OnZ)
ON_BN_CLICKED(IDC_ENTER, OnEnter)
ON_BN_CLICKED(IDC_SPACE, OnSpace)
ON_BN_CLICKED(IDC_BS, OnBs)
ON_BN_CLICKED(IDC_DEL, OnDel)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_SUBTRACT, OnSubtract)
ON_BN_CLICKED(IDC_MULTI, OnMulti)
ON_BN_CLICKED(IDC_DIVIDE, OnDivide)
ON_BN_CLICKED(IDC_DOUBLEPOINT, OnDoublepoint)
ON_BN_CLICKED(IDC_COMMA, OnComma)
ON_BN_CLICKED(IDC_FULLSTOP, OnFullstop)
ON_BN_CLICKED(IDC_QUESTIONMARK, OnQuestionmark)
ON_BN_CLICKED(IDC_EXCALMATORYMARK, OnExcalmatorymark)
ON_BN_CLICKED(IDC_AT, OnAt)
ON_BN_CLICKED(IDC_MONEY, OnMoney)
ON_BN_CLICKED(IDC_PERCENT, OnPercent)
ON_BN_CLICKED(IDC_LEFTPARENTHESIS, OnLeftparenthesis)
ON_BN_CLICKED(IDC_RIGHTPARENTHESIS, OnRightparenthesis)
ON_BN_CLICKED(IDC_EQUALMARK, OnEqualmark)
ON_BN_CLICKED(IDC_SOLIDUS, OnSolidus)
ON_BN_CLICKED(IDC_SMALL, OnSmall)
ON_BN_CLICKED(IDC_BIG, OnBig)
ON_BN_CLICKED(IDC_LEFT, OnLeft)
ON_BN_CLICKED(IDC_RIGHT, OnRight)
ON_BN_CLICKED(IDC_UP, OnUp)
ON_BN_CLICKED(IDC_DOWN, OnDown)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSKBDlg message handlers
CSKBDlg::CSKBDlg(CWnd* pWnd) // modeless constructor
{
m_pParentWnd = pWnd;
m_pTargetWnd = NULL;
}
BOOL CSKBDlg::Create()
{
return CDialog::Create(CSKBDlg::IDD);
}
BOOL CSKBDlg::OnInitDialog()
{
CDialog::OnInitDialog();
/////CenterWindow(GetDesktopWindow()); // center to the hpc screen
if(m_pTargetWnd == NULL) ///目標(biāo)窗口不能為空
{
return FALSE;
}
/// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
/////////數(shù)字鍵
void CSKBDlg::ExecuteNumKey(UINT nVKey) ///nVKey 16進(jìn)制
{
m_pTargetWnd->SetFocus();
keybd_event(nVKey, 0, 0, 0); ////按下
keybd_event(nVKey, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
////字母鍵
void CSKBDlg::ExecuteLetterKey(UINT nVKey)
{
if(IsLowerCase == TRUE) ////小寫
{
m_pTargetWnd->SetFocus();
keybd_event(nVKey, 0, 0, 0); ////按下
keybd_event(nVKey, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
else
{
m_pTargetWnd->SetFocus();
keybd_event(VK_SHIFT, 0, 0, 0); ////按下shift
keybd_event(nVKey, 0, 0, 0); ////按下
keybd_event(nVKey, 0, KEYEVENTF_KEYUP, 0); ///抬起
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
}
}
////符號(hào)鍵
void CSKBDlg::ExecuteChrKey(UINT nVKey)
{
m_pTargetWnd->SetFocus();
keybd_event(nVKey, 0, 0, 0); ////按下
keybd_event(nVKey, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
///// "1"
void CSKBDlg::On1()
{
ExecuteNumKey(0x31);
}
void CSKBDlg::On2()
{
ExecuteNumKey(0x32);
}
void CSKBDlg::On3()
{
ExecuteNumKey(0x33);
}
void CSKBDlg::On4()
{
ExecuteNumKey(0x34);
}
void CSKBDlg::On5()
{
ExecuteNumKey(0x35);
}
void CSKBDlg::On6()
{
ExecuteNumKey(0x36);
}
void CSKBDlg::On7()
{
ExecuteNumKey(0x37);
}
void CSKBDlg::On8()
{
ExecuteNumKey(0x38);
}
void CSKBDlg::On9()
{
ExecuteNumKey(0x39);
}
void CSKBDlg::On0()
{
ExecuteNumKey(0x30);
}
//// 大小寫切換
void CSKBDlg::OnCapslock()
{
if(IsLowerCase == TRUE)
{
IsLowerCase = FALSE;
}
else
{
IsLowerCase = TRUE;
}
}
/////// "A"
void CSKBDlg::OnA()
{
ExecuteLetterKey(0x41);
}
void CSKBDlg::OnB()
{
ExecuteLetterKey(0x42);
}
void CSKBDlg::OnC()
{
ExecuteLetterKey(0x43);
}
void CSKBDlg::OnD()
{
ExecuteLetterKey(0x44);
}
void CSKBDlg::OnE()
{
ExecuteLetterKey(0x45);
}
void CSKBDlg::OnF()
{
ExecuteLetterKey(0x46);
}
void CSKBDlg::OnG()
{
ExecuteLetterKey(0x47);
}
void CSKBDlg::OnH()
{
ExecuteLetterKey(0x48);
}
void CSKBDlg::OnI()
{
ExecuteLetterKey(0x49);
}
void CSKBDlg::OnJ()
{
ExecuteLetterKey(0x4A);
}
void CSKBDlg::OnK()
{
ExecuteLetterKey(0x4B);
}
void CSKBDlg::OnL()
{
ExecuteLetterKey(0x4C);
}
void CSKBDlg::OnM()
{
ExecuteLetterKey(0x4D);
}
void CSKBDlg::OnN()
{
ExecuteLetterKey(0x4E);
}
void CSKBDlg::OnO()
{
ExecuteLetterKey(0x4F);
}
void CSKBDlg::OnP()
{
ExecuteLetterKey(0x50);
}
void CSKBDlg::OnQ()
{
ExecuteLetterKey(0x51);
}
void CSKBDlg::OnR()
{
ExecuteLetterKey(0x52);
}
void CSKBDlg::OnS()
{
ExecuteLetterKey(0x53);
}
void CSKBDlg::OnT()
{
ExecuteLetterKey(0x54);
}
void CSKBDlg::OnU()
{
ExecuteLetterKey(0x55);
}
void CSKBDlg::OnV()
{
ExecuteLetterKey(0x56);
}
void CSKBDlg::OnW()
{
ExecuteLetterKey(0x57);
}
void CSKBDlg::OnX()
{
ExecuteLetterKey(0x58);
}
void CSKBDlg::OnY()
{
ExecuteLetterKey(0x59);
}
void CSKBDlg::OnZ()
{
ExecuteLetterKey(0x5A);
}
////////符號(hào)
void CSKBDlg::OnEnter()
{
ExecuteChrKey(VK_RETURN);
}
void CSKBDlg::OnSpace()
{
ExecuteChrKey(VK_SPACE);
}
void CSKBDlg::OnBs() ////BackSpace
{
ExecuteChrKey(VK_BACK);
}
void CSKBDlg::OnDel()
{
ExecuteChrKey(VK_DELETE);
}
void CSKBDlg::OnAdd() //// +
{
ExecuteChrKey(VK_ADD);
}
void CSKBDlg::OnSubtract() //// -
{
ExecuteChrKey(VK_SUBTRACT);
}
void CSKBDlg::OnMulti() ////*
{
ExecuteChrKey(VK_MULTIPLY);
}
void CSKBDlg::OnDivide() /// "/"
{
ExecuteChrKey(VK_DIVIDE);
}
void CSKBDlg::OnDoublepoint() /// :
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0xBA);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnComma() ///,
{
ExecuteChrKey(0xBC);
}
void CSKBDlg::OnFullstop() ///。
{
ExecuteChrKey(0xBE);
}
void CSKBDlg::OnQuestionmark() ///?
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0xBF);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnExcalmatorymark() ////!
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0x31);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnAt() ////@
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0x32);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnMoney() ///$
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0x34);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnPercent() /// %
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0x35);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnLeftparenthesis() ///(
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0x39);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnRightparenthesis() ////)
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0x30);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnEqualmark() ///=
{
m_pTargetWnd->SendMessage(WM_CHAR, 0x3d, 0); ///無(wú)虛鍵碼
}
void CSKBDlg::OnSolidus() ///"\"
{
ExecuteChrKey(0xDC);
}
void CSKBDlg::OnSmall() /// <
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0xBC);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnBig() //// >
{
keybd_event(VK_SHIFT, 0, 0, 0); ////按下
ExecuteChrKey(0xBE);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); ///抬起
}
void CSKBDlg::OnLeft()
{
ExecuteChrKey(VK_LEFT);
}
void CSKBDlg::OnRight()
{
ExecuteChrKey(VK_RIGHT);
}
void CSKBDlg::OnUp()
{
ExecuteChrKey(VK_UP);
}
void CSKBDlg::OnDown()
{
ExecuteChrKey(VK_DOWN);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -