我想控制TMemo滚动条的位置,,,谁知道怎么做?

解决方案 »

  1.   

    SendMessage(Memo1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
    但是这样只能以行为单位滚动,我向更精确的控制。
      

  2.   

    现在用的电脑没装DELPHI,不然一起研究一下
      

  3.   

    可不可以用SMB_SETPOS,来设置位置,SendMessage(Memo1.Handle, WM_VSCROLL, SMB_SETPOS, POS);POS是要设置的位置整数型没帮助信息在,电脑又没装DELPHI,不知道对不对
      

  4.   

    用WM_VSCROLL  配合 SB_THUMBTRACK 就可以搞定
    nScrollCode = (int) LOWORD(wParam); // scroll bar value 
    nPos = (short int) HIWORD(wParam);  // scroll box position 
    注意 在wParam 参数的高位中放 要移动的位置,就是 nPos,低位放 SB_THUMBTRACK, 
    具体如下
    procedure TForm1.Button1Click(Sender: TObject);
    var
      pos:SmallInt;
      wP:Integer;
    begin
      pos:=10;\\要移动的位置
      wp:=pos shl 16 ;\\把 pos放到高位
      wp:=wp+SmallInt(SB_THUMBTRACK);\\参数 SB_THUMBTRCK 放在低位
      SendMessage(Memo1.Handle,WM_VSCROLL,wp,0);
    end;