17.4.2 设置鼠标左键按下时的光标
添加鼠标左键按钮按下事件,修改鼠标左键按下时的光标。
- 01 void CMyBookDlg::OnLButtonDown(UINT nFlags, CPoint point)
- 02 {
- 03 CRgn rgnNormal,rgnLeft,rgnRight; //定义3个区域
- 04 rgnNormal.CreateRectRgn(区域1);
- 05 rgnLeft.CreateRectRgn(区域2);
- 06 rgnRight.CreateRectRgn(区域3);
- 07 if(rgnNormal.PtInRegion(point)) //区域1的光标
- 08 {
- 09 SetCursor(AfxGetApp()->LoadCursor(IDC_NORMAL));
- 10 }
- 11 else if(rgnLeft.PtInRegion(point)) //区域2的光标
- 12 {
- 13 SetCursor(AfxGetApp()->LoadCursor(IDC_LEFT));
- 14 if(!m_bTOnce &&! m_bAuto)
- 15 m_x += 40;
- 16 }
- 17 else if(rgnRight.PtInRegion(point)) //区域3的光标
- 18 {
- 19 SetCursor(AfxGetApp()->LoadCursor(IDC_RIGHT));
- 20 if(!m_bTOnce &&! m_bAuto)
- 21 m_x += 40;
- 22 }
- 23 CDialog::OnLButtonDown(nFlags, point);
- 24 }
注意:区域1、区域2及区域3应该是3个矩形区域,在此为了便于理解用汉字代替。
【代码解析】
第3~6行定义了3个不同的区域,第7~22行根据具体情况设置鼠标光标。第7~10行设置鼠标在区域1按下时的光标。第11~16行设置鼠标在区域2按下时的光标。第17~22行设置鼠标在区域3按下时的光标。鼠标在左侧区域2中按下的效果如图17.14所示。
|
| 图17.14 鼠标在左侧区域2中按下的效果 |