ListView控件是Windows程序开发中的常用控件, 利用它可以把需要用户进行选择操作的多个项目在窗口中以列表的方式显示, 每一个项目可以有它的小图标和大图标, 从而可以改善程序的用户界面, 方便用户操作.

为了使程序的界面更美观, 我们还可以在ListView控件中绘制底图, 正如我们可以为窗口绘制底图一样. 在Delphi中, 为ListView控件绘制底图是非常容易的, 它为我们提供有OnCustomDraw事件, 专门用于处理用户自定义的绘制, 在该事件中编写程序, 可以在绘制ListView的各个项目之前, 先执行该事件程序在ListView的画布(Canvas)上绘制我们自己的图形.

下面是在ListView控件中绘底图的一个小程序, 其运行结果如下图所示(略)
      源程序如下:

unit ListViewMain;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs,
ComCtrls, ImgList;
type
TForm1 = class(TForm)
ListView1: TListView;
ImageList1: TImageList;
procedure ListView1CustomDraw(Sender:
TCustomListView;
const ARect: TRect; var DefaultDraw:
Boolean);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Bitmap1: TBitmap;
implementation
{$R *.DFM}

procedure TForm1.ListView1CustomDraw(Sender:
TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
var
x,y,w,h : LongInt;
begin
with Bitmap1 do begin
W := Width;
H := Height;
end;
Y := 0;
while Y < Height do begin
X := 0;
while X < Width do begin
ListView1.Canvas.Draw(X, Y, Bitmap1);
Inc(X, W);
end;
Inc(Y, H);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap1 := TBitmap.Create;
Bitmap1.LoadFromFile('backgray.bmp');
end;

procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Bitmap1.Free;
end;

end.

转载于:https://www.cnblogs.com/myamanda/articles/1545357.html

在ListView控件中绘底图相关推荐

  1. VB.net实现从ListView控件中异地获取文本内容源代码

    对于一些VB6工程代码来说,需要完成从VB到VB.net的转换,在转换过程中需要注意很多内容,利用VB.net的直接转换功能很少能完全成功,需要我们付出很大的努力. 下面的VB.net代码实现从其他应 ...

  2. 《如何更改其他程序ListView控件中某个Item的内容》

    <如何更改其他程序ListView控件中某个Item的内容> 天津 赵春生 ××× 一:程序说明: 这次我将介绍如何更改其他程序ListView控件中某个Item的内容,关于类似的拙文我已 ...

  3. 如何:在 Windows 窗体 ListView 控件中启用平铺视图 【转载】

    本文转载自http://msdn.microsoft.com/zh-cn/library/s8z85th0(VS.80).aspx 借助于 ListView 控件的平铺视图功能,可以在图形信息和文本信 ...

  4. listview显示mysql数据_C#在listview控件中显示数据库数据

    一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...

  5. 如何设置ListView控件中的列头的颜色!

    ListView默认的列头的背景太单调,缺乏个性,想变的列头的背景色! 实际上可以使用ListViewDrawColumnHeader事件自己画背景色,注意仅当 OwnerDraw 属性设置为 tru ...

  6. 《如何更改其他程序ListView控件中某个Item的内容》 -- 天津 赵春生

    1,字符串缓冲区的作用不同:前者pItem用来接收ITEMTEXT,我们可以通过ReadProcessMemory函数来读取其内容:而在本篇中p_MyItemText则用来存放我们要设置的ITEMTE ...

  7. 如何判断ListView中的CheckItem项是否选中?并将所以选项从ListView控件中删除?

    设置ListViw带有CheckBox foreach (ListViewItem temp_LVI in this.ListView1.CheckedItems)//用foreach()函数遍历{t ...

  8. vb html listview,VB中listview控件

    控件 listview控件可有4种不同的视图显示方法,跟"资源管理器"里的"查看"方式相似:(1)无图标:(2)小图标:(3)列表:(4)报表式. 使用哪种视图 ...

  9. VB中利用ListView控件来制作表格

    ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数. 下面介绍一下L ...

最新文章

  1. 钰群USB3.0音视频信号采集
  2. 为PHP安装Memcached扩展连接Memcached
  3. 超牛逼的异步协程爬虫
  4. LintCode MySQL 1936. 张三的故事 III
  5. 网络打印机 RPC服务器不可用
  6. c#开发大全、系列文章、精品教程
  7. poj 2741 Colored Cubes(dfs暴力枚举)
  8. vs2013 win10 Caffe的编译安装(微软版本)
  9. warning: Clone succeeded, but checkout failed.
  10. AOKP接听震动PHONE.APK修改方法
  11. 从0到1 开启商业与未来的秘密读书笔记
  12. 解析 数据库 苹果自带地图
  13. BeanCurrentlyInCreationException异常分析及解决
  14. flink教程-聊聊 flink 1.11 中新的水印策略
  15. 怎么把两个表格的内容合并
  16. 机房的正确布线方法,四招轻松搞定!
  17. 淘宝API接口(item_sku - 获取sku详细信息)
  18. PMOS——用于电源开关浅析
  19. 201671010403 陈倩倩 实验四附加实验
  20. 【大学物理·早期量子论和量子力学基础】光电效应爱因斯坦的光子理论

热门文章

  1. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令(转)
  2. [Android学习笔记四] 自定义Android组件之组合方式创建密码框组件
  3. 上一季诺基亚销售下跌28%
  4. 浅谈Object Pascal的指针[引用 Nicrosoft]
  5. Golang之不可重入函数实现
  6. 一个求矩阵鞍点(即行上最小的数 同时是列上最大的数)的C程序
  7. 第三章-电商项目-优化评论分页查询
  8. nginx 升级http请求到websocket
  9. mysqldump: Got error: 1016: Can't open file: './xxx.frm' (errno: 24) when using LOCK TABLES
  10. 【教你如何放大招】程序猿是如何一点点的吃下一个产品的