如题,请注意我是想截获那个消息。
一、常规的想法我都试了,就是截不到。
(WM_VSCROLL,EN_VSCROLL,难道上下滚动的时候不是这两个消息,另有其它?)
二、挂钩子就不要说了。谢谢!

解决方案 »

  1.   

    很有可能不是这个消息
    我觉得一般TCombobox的消息就以下几种,不知道对不对
    WS_TABSTOP, WS_GROUP, WS_VSCROLL, and WS_DISABLED........
      

  2.   

    //给你提供一个思路~~
    //先找到弹出来的列表窗体,然后截获它的消息~~
    //实现代码如下,不过此方法并不妥当~~
    //或者你先说想实现的目的~~var
      vOldWndProc: Pointer = nil;function NewWndProc(hWnd: HWND; uMsg: UINT;
      wParam: WPARAM; lParam: LPARAM): Integer; stdcall;
    begin
      { TODO : 处理hWnd消息 }
      Result := CallWindowProc(vOldWndProc, hWnd, uMsg, wParam, lParam);
    end; { NewWndProc }procedure TForm1.ComboBox1DropDown(Sender: TObject);
    begin
      Timer1.Enabled := not Assigned(vOldWndProc);
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    var
      vRect: TRect;
      vHandle: THandle;
    begin
      Timer1.Enabled := False;
      GetWindowRect(ComboBox1.Handle, vRect);
      vRect.Top := vRect.Top + ComboBox1.Height + 2;
      vHandle := WindowFromPoint(vRect.TopLeft);
      vOldWndProc := Pointer(GetWindowLong(vHandle, GWL_WNDPROC));
      SetWindowLong(vHandle, GWL_WNDPROC, Integer(@NewWndProc));
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Interval := 100;
    end;
      

  3.   

    to  zswang(伴水清清)(专家门诊清洁工):
       多谢,你的方法确实可以实现。可以截到WM_VSCROLL消息。to Kshape(伟大的大伟//给我一个机会、我想做好人!) 
    你说的不是消息,那些是Window Styles,谢谢参与。随便也感谢merkey2002(小样的)帮我顶。
    就此结帖。