zoukankan      html  css  js  c++  java
  • 滚动条

     

    WINDOWS发送消息

    This function sends the specified message to a window or windows. SendMessage calls the window 
    procedure for the specified window and does not return until the window procedure has processed the
    message. The PostMessage function, in contrast, posts a message to a thread's message queue and
    returns immediately.
    LRESULT SendMessage(
      HWND hWnd, 
      UINT Msg, 
      WPARAM wParam, 
      LPARAM lParam 
    ); 

    DELPHI的发送消息

    function TControl.Perform(
            Msg: Cardinal;
            WParam: WPARAM;
            LParam: LPARAM
    ): LRESULT;


    Memo1.Perform(WM_HSCROLL, SB_LEFT, 0); 

    水平滚动条

    水平滚动条消息    WM_HSCROLL                                         
    SendMessage(Memo1.Handle, WM_HSCROLL, MAKEWPARAM(SB_THUMBPOSITION, 50), 0);  //滚动至此               
    SendMessage(Memo1.Handle, WM_HSCROLL, SB_LEFT, 0);                           //左边缘           
    SendMessage(Memo1.Handle, WM_HSCROLL, SB_RIGHT, 0);                          //右边缘               
    SendMessage(Memo1.Handle, WM_HSCROLL, SB_PAGELEFT, 0);                       //向左翻页               
    SendMessage(Memo1.Handle, WM_HSCROLL, SB_PAGERIGHT, 0);                      //向右翻页           
    SendMessage(Memo1.Handle, WM_HSCROLL, SB_LINELEFT, 0);                       //向左滚动           
    SendMessage(Memo1.Handle, WM_HSCROLL, SB_LINERIGHT, 0);                      //向右滚动   

    垂直滚动条

    垂直滚动条消息    WM_VSCROLL                                        
    SendMessage(Memo1.Handle, WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION, 50), 0); //滚动至此 50为位置  滚动到指定行号       
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_TOP, 0);                           //顶部            
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_BOTTOM, 0);                        //底部            
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_PAGEUP, 0);                        //向上翻页        
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);                      //向下翻页        
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_LINEUP, 0);                        //向上滚动        
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);                      //向下滚动   

    获得滚动条的位置

    The GetScrollPos function retrieves the current position of the scroll box (thumb) in the specified 
    scroll bar. The current position is a relative value that depends on the current scrolling range.
    For example, if the scrolling range is 0 through 100 and the scroll box is in the middle of the
    bar, the current position is 50. int GetScrollPos( HWND hWnd, int nBar );
    var
      h, v: Integer;
    begin
      h := GetScrollPos(Memo1.Handle, SB_HORZ);
      v := GetScrollPos(Memo1.Handle, SB_VERT);
      Caption := Format('水平数值=%d 垂直数值=%d', [h, v]);
    end;

    显示和隐藏滚动条

    //隐藏MEMO水平滚动条
    ShowScrollBar(Memo1.Handle,SB_HORZ,false);
    //隐藏MEMO垂直滚动条
    ShowScrollBar(Memo1.Handle,SB_VERT,false);

     判断 滚动条是否出现

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if (GetWindowlong(Memo1.Handle, GWL_STYLE) and WS_VSCROLL) > 0 then
        ShowMessage('Vertical scrollbar is visible!');
      if (GetWindowlong(Memo1.Handle, GWL_STYLE) and WS_HSCROLL) > 0 then
        ShowMessage('Horizontal scrollbar is visible!');
    end;

    http://blog.163.com/fj_lfx/blog/static/377536832010419102554448/

  • 相关阅读:
    元素居中浏览器的多种方法集锦
    javascript深入理解js闭包
    闭包
    碎片
    define
    define定义方法
    创建数据库sql语句
    java十进制转换成二进制数
    java解析JSON数据
    java实现最通俗易懂的01背包问题
  • 原文地址:https://www.cnblogs.com/xe2011/p/3485084.html
Copyright © 2011-2022 走看看