滾動條

 

 

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);  html

 

水平滾動條

水平滾動條消息    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);

 

 

 判斷 滾動條是否出現windows

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/ide

相關文章
相關標籤/搜索