小弟最近在做一个鼠标的驱动,鼠标滚轮上有左右按键,目的是当在有水平滚动条的窗口中时,按这两个按键可以使窗口左右滚动,窗口中如果是Windows的标准控件Scrollbar的话直接向控件发送消息就可以让窗口水平滚动了,如果有WS_HSCROLL风格的窗口,直接向窗口PostMessage(hwnd,WM_HSCROLL,SB_LINELEFT,(LPARAM)hwnd);也可以让窗口滚动,但是在Word2007中就不行了,我发现水平滚动条的类名是NUIScrollbar,用GetScrollInfo和SetScrollInfo可以使这个滚动条滚动,但是窗口不能滚动,想请教各位高手如何使窗口滚动?还有就是那种整个窗口中所有控件都是一个类名的,这种情况下改如何使窗口滚动?????

解决方案 »

  1.   

    变通方法当然不会是最佳方法了.
    你可以跟踪消息 看看系统在使用滚动时 向word2007发送了什么消息.看看它是响应什么消息.
      

  2.   

    我早用SPY++跟踪要滚动的哪个窗口,意外的是都是些和滚动不相关的消息(word2007中)
      

  3.   

    研究office的本来就不多,你可以看看Word2007的VBA帮助,或许会有收获。
      

  4.   

    NUIScrollbar
    可能是自建的控件类型,不知道能否接受标准SCROLLBAR消息最好问一下MS的技术支持
    这东西跟xp的DirectUIHWND差不多一个意思
      

  5.   

    借鉴一下其它厂家的做法或WINDOWS的相关文档,比较权威
      

  6.   

    用SendInput发鼠标消息好了,不用管在那个窗口。
      

  7.   

    其实你这个也是模拟鼠标和键盘的消息,有些自绘窗口根本就不处理键盘上VK_LEFT,VK_RIGHT WORD2007就是这样,所以我觉得这种办法也不行嘛