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