📄 untitled-20.txt
字号:
BOOL OANousewheel(UINT nFlaqs, short zDelta, CPoint point)
"Flags和point参数与传递给onLButtonDown的相同。zDelta是滚轮旋转的距离。zDelta等于
WHEEInDELTA(120)意味着滚轮向前旋转了一个增量,或称为槽口,而zDelta等于
一WHEEL.DELTA意味着滚轮向后旋转一单位槽口。如果滚轮向前旋转了5个槽口,则窗
口将接收到5个WM—MOUSEWHEEL消息,每个消息都有一个zDelta值为WHEEL-DELTA。
如果onMousewheel滚动了窗口,则它应该返回一个非零值,否则返回零值。
响应WM.MOUSEWHEEL消息的一个简单方法是对每一WHEEL-DELTA单位都将窗口
向上滚动一行(如果zDelta是正的)或向下滚动一行(如果zDelta是负的)。然而,推荐的方
法却稍微有些复杂。首先要询问系统与 WHEEL-DELTA单位对应的行数。在Windows NT
4.0及其更高版本和 Windows 98中,您可以调用:: SystelnParameterslnfo,它的第一个参数等于
SPI.GETWHEEthCROLLLINES。然后用zDelta乘以结果并除以WHEEInDELTA来确定滚动
的行数。通过给CMainwindow添加下列消息映射表输人项和消息处理程序,您可以修改第
2章给出的Accel程序中对WM_MOUSEWHEEL消息的响应:
人In the message maP
ONW14-MOUSEWHEEL()
BOOL CMainwindow::OnMousewheel(UINT "Flags, short zDelta, CPoint point)
Z
BOOL bUp= TRUE;
主fit flDfl工tfl=flDflltfl;
。f(zDelta< 0)Z
bUp= FALSE;
"Delta=-"Delta;
1
U工HT nwhee工SCrQ工IL工nes;
::SystemParaaeterslnfo(SPI.GETWHEELSCROLLLINES,0。
&nwhee1ScrollLines, 0);
。f(nwheelscrollL。nes== WnEzt_vnGESCR0nt)丑
SendMessage(WM~VSCROLL,
MAKEWPAR.can(bUp?SB.PAGEUP:SB.PAGEDOWN,0),0);
S
else
nit "Lines=("Delta。 nwhee1ScrollLines)/ WHEEL_DELTA;
wb。l、(nL。nes.)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -