在使用该消息时,需要进行自行定义WM_MOUSEWHEEL
#define WM_MOUSEWHEEL 0x020A
滚动条的使用中,有窗口滚动条和滚动条控件之分,前者是在winmain的CreateWindow函数第三个参数指定 WS_VSCROLL或者WS_HSCROLL,指定这种风格就会产生窗口滚动条;后者是在处理WM_CREATE消息时,利用CreateWindow创建一个滚动条控件。
两者区别:后者有自动键盘接口,即不需要自己处理WM_KEYDOWN消息,而前者需要自行处理。
个人对待WM_MOUSEWHEEL都是自己处理,当主窗口收到该消息,就在WM_MOUSEWHEEL的处理过程中,主窗口发送WM_VSCROLL消息
case WM_MOUSEWHEEL:
iAccumDelta += (short) HIWORD (wParam) ; // 120 or -120
while (iAccumDelta >= 40)
{
SendMessage (hwnd, WM_VSCROLL, SB_LINEUP, 0) ;
iAccumDelta -= 40 ;
}
while (iAccumDelta <= -40)
{
SendMessage (hwnd, WM_VSCROLL, SB_LINEDOWN, 0) ;
iAccumDelta += 40 ;
}
return 0 ;
即便在控件子类化的时候,也需要对该消息自行处理