|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2019/9/9 0:42:07 |
标题: |
关于memo控件的scrollbar的问题 |
浏览:805 |
|
加入我的收藏 |
楼主: |
在memo中设置scrollbar为vertical后就可以用鼠标滚轮来上下滚动内容了,但是同时又不想显示右边的滚动条,有什么办法吗?
----------------------------------------------
- |
作者: |
|
2019/9/9 10:31:46 |
1楼: |
你如果是产品经理的话,工程师要估计暴走了
----------------------------------------------
-
|
作者: |
|
2019/9/9 10:48:48 |
2楼: |
其实吧 给 500万人民币,就可以做到了。 多费点脑细胞而已。 要价500万是因为,这种事情,不应该做。浪费。 既然是浪费,就应该叫提需求的人,高价补偿。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2019/9/9 10:50:38 |
3楼: |
试试鼠标滚轮时,发送滚动条消息
----------------------------------------------
18114532@qq.com
|
作者: |
|
2019/9/9 10:53:38 |
3楼: |
需要自己处理鼠标滚轮的滚动消息: 1、Memo.ScrollBars设为ssNone; 2、在窗口代码中加上变量及消息函数: FOldWndMethod: TWndMethod; procedure MemoProc(var Msg: TMessage); //... procedure TForm1.MemoProc(var Msg: TMessage); var WheelDelta: SmallInt; begin if (Msg.Msg = WM_MouseWheel) then begin WheelDelta := SmallInt(HiWord(Msg.WParam)) div WHEEL_DELTA; Memo1.CaretPos := Point(Memo1.CaretPos.X, Memo1.CaretPos.Y - WheelDelta); memo1.Perform(EM_SCROLLCARET, 0, 0); Msg.Result := 0; Exit; end;
FOldWndMethod(Msg); end; 3、在FormCreate/FormDestroy中分别处理一下Memo.WindowProc: procedure TForm1.FormCreate(Sender: TObject); begin FOldWndMethod := Memo1.WindowProc; Memo1.WindowProc := Self.MemoProc; end;
procedure TForm1.FormDestroy(Sender: TObject); begin Memo1.WindowProc := FOldWndMethod; end;
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
作者: |
|
2019/9/9 11:55:49 |
4楼: |
找个panel把memo右边遮住
----------------------------------------------
-
|
作者: |
omvm ( ) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2019/9/9 22:18:35 |
5楼: |
其实很简单
----------------------------------------------
-
|
|