键盘事件响应

 

1、创建基于单文档工程:KeyInput

2、在CKeyInputView中添加成员函数:

public:

bool m_bShiftDown;

CPoint m_ptCharacter;

3、CKeyInputView()中初始化:

m_bShiftDown = ture;

m_ptCharacter.x = 0;

m_ptCharacter.y = 0;

4、CKeyInputView()中添加消息响应函数:

WM_KEYDOWN  、 WM_CHAR  、WM_SETFOCUS

5、OnKeyDown中:

if(nChar == VK_SHIFT)

{

    m_bShiftDown = m_bShiftDown ? false:ture;

}

6、OnSetFocus中:

CreateSolidCaret(3,18);//建立光标

    SetCaretPos(m_ptCharacter);//设定光标位置

    ShowCaret();//显示光标

7、OnChar中:

if(m_bShiftDown)

    {

       if(nChar == 13)//回车

       {

           m_ptCharacter.x = 0;

           m_ptCharacter.y += 25;

           SetCaretPos(m_ptCharacter);

           ShowCaret();

       }else{

           CClientDC dc(this);

           HideCaret();

           dc.TextOut(m_ptCharacter.x,m_ptCharacter.y,

(LPCTSTR)&nChar);

           CSize textsize;

           textsize = dc.GetTextExtent((LPCTSTR)&nChar);

           m_ptCharacter.x += textsize.cx;

           SetCaretPos(m_ptCharacter);

           ShowCaret();

       }

    }

 

注:

GetDlgItem(IDC_INPUT)->SetWindowText(“模拟输入”);

GetDlgItem(IDC_INPUT)->SetWindowText(“停止输入”);

 

SetTimer(1,500,NULL);

OnTimer(){}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值