通过键盘按键改变 光标形状

文件名为DAY3.

void CDAY3Dlg::OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags)
{
char lsChar;
HCURSOR lhCursor;
lsChar = char(nChar);
if(lsChar =='A')//箭头
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
   SetCursor(lhCursor);
}
if(lsChar =='B')//I字形
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_IBEAM);
   SetCursor(lhCursor);
}
if(lsChar =='C')//沙漏形
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_WAIT);
   SetCursor(lhCursor);
}
if(lsChar =='D')//小加号
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_CROSS);
   SetCursor(lhCursor);
}
if(lsChar =='E')//向上的小箭头
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);
   SetCursor(lhCursor);
}
if(lsChar =='F')//双向箭头NW(north_west)方向-SE(south_east)方向
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_SIZENWSE);
   SetCursor(lhCursor);
}
if(lsChar =='G')//双向箭头NE(north_east)方向-SW(south_west)方向
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_SIZENESW);
   SetCursor(lhCursor);
}
if(lsChar =='H')//双向箭头W(west)方向-E(east)方向
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_SIZEWE);
   SetCursor(lhCursor);
}
if(lsChar =='I')//双向箭头N(north)方向-S(south)方向
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_SIZENS);
   SetCursor(lhCursor);
}
if(lsChar =='J')//两个交叉的双向箭头分别指向NS和WE方向
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_SIZEALL);
   SetCursor(lhCursor);
}
if(lsChar =='K')//禁止的标志
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_NO);
   SetCursor(lhCursor);
}
if(lsChar =='L')//箭头加沙漏
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_APPSTARTING);
   SetCursor(lhCursor);
}
if(lsChar =='M')//箭头加问号
{
   lhCursor = AfxGetApp()->LoadStandardCursor(IDC_HELP);
   SetCursor(lhCursor);
}
if(lsChar =='N')//自定义光标
{
   lhCursor = AfxGetApp()->LoadCursor(IDC_CURSOR1);
   SetCursor(lhCursor);
}

}

说明:

1、afx_msg void OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags);

nChar:该字符的字符编码。lsChar = char(nChar);把nChar转换成一个字符。转换成字符以后,就可以进行直接的比较是哪一个按键被按下。

nRepCnt:键按下的次数

nFlags:Alt键是否被同时按下。

2、lhCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW);

LoadStandardCursor不是VC++的标准函数,也不是API的函数,它是CWinApp类的函数。AfxGetApp返回一个 CWinApp对象指针,就是MFC生成的CDAY3App.cpp中定义的那个对象。如果需要调用这个对象的某个成员函数,就可以使用 AfxGetApp()函数。

3、LoadCursor加载自己的光标

在插入资源里面新建一个 。

4、SetCursor光标载入内存后该光标的句柄被传给SetCursor函数,此函数把光标转换撑句柄所指向的那个光标。


SetCursor(AfxGetApp()->LoadStandardCursor(IDC_SIZEALL));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值