关于CListView和CTreeView的背景图问题?

fenex 2002-01-18 10:23:54
1。CListView:
我用响应OnEraseBkgnd的方法把CListView的背景设成了一张位图,但是列表项的text和image会遮住一部分背景图案,请问如何使text的背景色为透明?

2。CTreeView
同样的遇到了如上的遮挡问题,另外,当展开子项时背景图会同时向下移动,这是怎么回事,如何解决?
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenex 2002-01-20
  • 打赏
  • 举报
回复
谢谢huashanyjj(舟楚渔),CListView的问题已经解决。
但是CTreeView没有提供SetBkImage方法,不知该如何解决?
fenex 2002-01-19
  • 打赏
  • 举报
回复
该怎么做呢?
spark_zh 2002-01-19
  • 打赏
  • 举报
回复
不要总想着重画list还是tree,过两天还想把滚动条换成自己的图片。这些都不能做的很好。你要想做的漂亮,就自己从头做,从CWnd派生。
但是CTreeCtrl还是不要自己坐了,太麻烦。
Cline 2002-01-19
  • 打赏
  • 举报
回复
有点问题的建议:
HBRUSH CMPlayerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
...........
m_pListBrush=new CBrush();
m_pListBrush->CreatePatternBrush(pBrushBitmap);
return HBRUSH(m_pListBrush->GetSafeHandle());
............
}
fenex 2002-01-19
  • 打赏
  • 举报
回复
没人知道吗?
fenex 2002-01-19
  • 打赏
  • 举报
回复
谢谢各位的热心帮助。
另,LiGun(GUN):哪里有下载《MFC经典问答》或与之相关问题的解答?
LiGun 2002-01-19
  • 打赏
  • 举报
回复
请参考MFC经典问答一书,上有详细的回答。
huashanyjj 2002-01-19
  • 打赏
  • 举报
回复
在InitInstance()中加入
if (!AfxOleInit())
{
AfxMessageBox("Unable to initialize OLE.\nTerminating application!");
return FALSE;
}
最好在顶部,否则可能不行。
然后在clistview的OnInitialUpdate()
加入
GetListCtrl().SetBkImage("c:\\beaty.gif",TRUE);
即可
如要透明:

GetListCtrl().SetTextBkColor(-1);
一定可以。

1,662

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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