如果背景图的尺寸比Listview大,如何让listview显示滚动条,以显示所有背景?

snla 2003-06-02 10:00:41
谢谢!
...全文
47 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
snla 2003-07-10
  • 打赏
  • 举报
回复
我现在是在TScrollBox,不过在确定图形的坐标上还有些问题!滚动条在不同的位置,按照坐标在图形上做的修改就有问题!
Siney 2003-07-10
  • 打赏
  • 举报
回复
坐标有问题用ScreenToClent()变换
snla 2003-07-09
  • 打赏
  • 举报
回复
是要显示图形
Siney 2003-07-09
  • 打赏
  • 举报
回复
想显示图形不一定要在TListView里,在TScrollBox多方便
Siney 2003-07-04
  • 打赏
  • 举报
回复
图形可以再OnCustomDraw里绘制在CAnvas里,但是我不明白你是像显示图形,还是图形做背景,如果是想像Acssee那样,显示缩略图,可以处理OnCustomeDrawItem,如果是做背景,则不能随意滚动背景图,那是和item对应的。
snla 2003-06-04
  • 打赏
  • 举报
回复
各位帮忙up一下
snla 2003-06-03
  • 打赏
  • 举报
回复
谢谢domustdo(大头)
这个办法太浪费内存了,而且我的目的是给listview设好背景后,可以在上面动态生成控件,并且,控件的位置和参数保存到数据库!
gjgj3368 2003-06-02
  • 打赏
  • 举报
回复
up
zywx 2003-06-02
  • 打赏
  • 举报
回复
to domustdo(大头)
ListView可以显示背景,在OnCustomDraw里画就行了,
但是没有滚动条,只有你的ListItem超出边界,才会出现滚动条
domustdo 2003-06-02
  • 打赏
  • 举报
回复
这不是,只是赋值而已,没有涉及到内存空间的操作
snla 2003-06-02
  • 打赏
  • 举报
回复
我做了
AnsiString strBack;
strBack = pTestField->AsString;
这是不是出错的原因?
sbean 2003-06-02
  • 打赏
  • 举报
回复
在TStringField* pTestField = new TStringField(this)到
delete pTestField的过程中间,你再看看做了什么,特别是对pTestField使用、传递;
一般出错多半是这个指针指向的空间已经删掉了.

domustdo 2003-06-02
  • 打赏
  • 举报
回复
ListView可以显示背景图么?好像BCB自带的ListView不行吧
domustdo 2003-06-02
  • 打赏
  • 举报
回复
可能会出错,因为你可能程序中将这个指针赋给了其它的指针,
例如:TStringField* pfield = pTestField;
delete pfield;
delete pTestField;
从而对同一个对象释放2次,这样会产生执行期未定义的行为
snla 2003-06-02
  • 打赏
  • 举报
回复
高手帮忙呀!
snla 2003-06-02
  • 打赏
  • 举报
回复
还有一个问题!
TStringField* pTestField = new TStringField(this);
.....
delete pTestField;
为什么删除的时候会报错??
snla 2003-06-02
  • 打赏
  • 举报
回复
我试试,如果可以,马上结贴
domustdo 2003-06-02
  • 打赏
  • 举报
回复
哦,忘了在ScrollBar1Change函数中delete pBitmap了
domustdo 2003-06-02
  • 打赏
  • 举报
回复
你可以这样用单独的ListView和ScrollBar来组合实现背景的滚动,两者放在一个Panel上,下面的代码只是实现垂直滚动,横向滚动一样的道理:
void __fastcall TForm1::ListView1CustomDraw(TCustomListView *Sender,
const TRect &ARect, bool &DefaultDraw)
{
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
try
{
pBitmap->LoadFromFile("C:\\1.bmp");
ListView1->Canvas->Draw(0,0,pBitmap);
if (pBitmap->Height > ListView1->Height)
{
ScrollBar1->Max = pBitmap->Height;
}
}
catch (...)
{
ShowMessage("Could not load or display bitmap");
}
delete pBitmap;
}

void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->LoadFromFile("C:\\1.bmp");
ListView1->Canvas->Draw(0,ScrollBar1->Position,pBitmap);
}

snla 2003-06-02
  • 打赏
  • 举报
回复
我就是希望出现滚动条,要不还有什么控件能出滚动条?而且能做其他控件的parent
加载更多回复(1)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧