ListBox滚动条事件的实现
来源:互联网 发布:python redis auth 编辑:程序博客网 时间:2024/05/21 12:45
在ListBox中有个WindowProc过程,是个处理消息的方法,本程序就是基于此过程实现的。首先在程序运行时保存WindowProc入口地址,然后用自己的过程处理方法覆盖原来的入口地址,再在程序中调用原来的处理过程,判断ListBox的滚动消息,在其中加上自己的事件处理,完成。
以下是源码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
lbl1: TLabel;
lbl2: TLabel;
procedure FormCreate(Sender: TObject);
private
procedure myProc(var Message: TMessage);
procedure myWndProc(var message: TMessage);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
OldProc: TWndMethod;
p: TPoint;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
OldProc := ListBox1.WindowProc;
ListBox1.WindowProc := myProc;
for i:= 0 to 200 do
ListBox1.Items.Add(IntToStr(i));
end;
procedure TForm1.myProc(var Message: TMessage);
begin
OldProc(Message);
if ((Message.Msg = WM_VScroll) and (Message.WParamLo = SB_EndScroll))
then lbl1.Caption := IntToStr(ListBox1.ItemAtPos(p, True));
end;
end.
- ListBox滚动条事件的实现
- ListBox 水平滚动条智能滚动的实现方法
- 滚动条事件实现
- *控件*有滚动条的LISTBOX
- 设置ListBox的水平滚动条
- 设置ListBox的水平滚动条
- ListBox控件 滚动条
- ListBox水平滚动条
- javaScript实现滚动条事件
- C#仿QQ皮肤-Label与ListBox 控件实现----寻求滚动条的解决方案
- VC 一个函数实现listbox 水平滚动条
- WinForm中重绘滚动条以及用重绘的滚动条控制ListBox的滚动
- ListBox设置水平滚动条
- listbox 带横向滚动条
- ListBox增加横向滚动条
- ListBox 添加横向滚动条
- vb6 ListBox横向滚动条
- ListBox 添加水平滚动条
- ASP进度条
- please take me away from the world
- 某公司笔试题
- 如何让dreamweaver打开编辑rhtml文件
- c/c++ garbage collector
- ListBox滚动条事件的实现
- 最近喜欢听的一首歌,希望成真
- 【例子】线程安全的共享缓冲队列
- C/C++ young library 设计与实现 — 概念
- VC杂项编程
- hibernate的eclipse插件
- Beanshell
- 事件整理1——xinxiziyuanguanli
- 我也写blog!