社区
界面
帖子详情
一个比较变态的问题,是关于ListView的文字的设置问题
njtlxm
2004-05-03 11:49:13
我做了一个ListView,里面当然有很多item,每个item有图标和文字,但是遇到一个比较变态的用户,他不希望看见item中的文字,而是当鼠标移动到上面的时候显示tip,这个到是没有问题。由于种种原因,我不能将item上的文字设置为空,现在我想能否有办法把每个item上的文字隐藏起来?各位想想办法。比如设置文字本身为透明?还是把字体的大小设置为0?我都没有试验成功。
...全文
117
5
打赏
收藏
一个比较变态的问题,是关于ListView的文字的设置问题
我做了一个ListView,里面当然有很多item,每个item有图标和文字,但是遇到一个比较变态的用户,他不希望看见item中的文字,而是当鼠标移动到上面的时候显示tip,这个到是没有问题。由于种种原因,我不能将item上的文字设置为空,现在我想能否有办法把每个item上的文字隐藏起来?各位想想办法。比如设置文字本身为透明?还是把字体的大小设置为0?我都没有试验成功。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
njtlxm
2004-05-08
打赏
举报
回复
我用其他方法实现了,不过还是谢谢。给分
UDX协议
2004-05-06
打赏
举报
回复
当然可以。
void CDlgDlg::OnCustomdrawList ( NMHDR* pNMHDR, LRESULT* pResult )
{
}
主要负责绘制列表。
用CDC::SetTextColor就可以改变文字的颜色。
说白了,和平时绘图没区别。
只是他限制你在一定区域内作图。
wangjs720
2004-05-06
打赏
举报
回复
把字体颜色设为背景色??
打雷啦的专栏
2004-05-06
打赏
举报
回复
TO-----》 wwwllg(wwwllg)
我想在ListControl上面显示不同颜色的字体,不知道是否同一个问题?
用你的方法能否解决?
UDX协议
2004-05-04
打赏
举报
回复
这个问题可以解决。不过有点麻烦。
主要要响应一些Notify消息,用一个结构表示一条记录.
我给一段代码你,有什么问题发lglee@fiberhome.com.cn
BEGIN_MESSAGE_MAP(CDlgDlg, CDialog)
ON_WM_CONTEXTMENU()
//{{AFX_MSG_MAP(CDlgDlg)
ON_WM_QUERYDRAGICON()
ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
ON_WM_DESTROY()
ON_WM_WINDOWPOSCHANGED()
ON_WM_WINDOWPOSCHANGING()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_SIZE()
ON_NOTIFY(NM_SETFOCUS, IDC_LIST1, OnSetfocusList1)
ON_WM_MOVE()
ON_WM_MOVING()
ON_WM_ACTIVATE()
ON_WM_PARENTNOTIFY()
ON_WM_QUERYOPEN()
ON_WM_CREATE()
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_WM_TIMER()
//}}AFX_MSG_MAP
ON_NOTIFY( LVN_GETINFOTIP, IDC_LIST1,OnInfoTip )
ON_NOTIFY (LVN_GETDISPINFO, IDC_LIST1,OnGetDispInfo)
ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, OnCustomdrawList)
END_MESSAGE_MAP()
//
void CDlgDlg::OnInfoTip( NMHDR * pNMHDR, LRESULT * pResult )
{
NMLVGETINFOTIP* pInfoTip = reinterpret_cast<NMLVGETINFOTIP*>(pNMHDR);
ASSERT(pInfoTip);
CObjectItem *item =(CObjectItem *)m_cListCtrl.GetItemData(pInfoTip->iItem);
_tcscpy(pInfoTip->pszText,item->m_Discrip);
}
void CDlgDlg::OnGetDispInfo(NMHDR* pnmhdr, LRESULT* pResult)
{
// LV_DISPINFO* pdi = (LV_DISPINFO *) pnmhdr;
// if (LVIS_SELECTED == m_cListCtrl.GetItemState (pdi->item.iItem,
// LVIS_SELECTED))
// {
// pdi->item.iImage = 2;
// }
// else
// pdi->item.iImage = 2;
// if(m_cListCtrl.GetCheck(pdi->item.iItem))
// pdi->item.iImage = 0;
}
void CDlgDlg::OnCustomdrawList ( NMHDR* pNMHDR, LRESULT* pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
*pResult = 0;
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
LVITEM rItem;
int nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );
if(nItem<0) return ;
CDC* pDC = CDC::FromHandle ( pLVCD->nmcd.hdc );
COLORREF crBkgnd;
BOOL bListHasFocus;
CRect rcItem;
CRect rcText;
CString sText;
UINT uFormat;
bListHasFocus = ( m_cListCtrl.GetSafeHwnd() == ::GetFocus() );
ZeroMemory ( &rItem, sizeof(LVITEM) );
rItem.mask = LVIF_IMAGE | LVIF_STATE;
rItem.iItem = nItem;
rItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED;
m_cListCtrl.GetItem ( &rItem );
CRect text,icon;
m_cListCtrl.GetItemRect( nItem, &rcItem, LVIR_BOUNDS );
m_cListCtrl.GetItemRect( nItem, &text, LVIR_LABEL );
m_cListCtrl.GetItemRect( nItem, &icon, LVIR_ICON );
if(m_bLargeIcon)
icon.left+=6;
CRect check(rcItem);//,icon(rcItem);
uFormat = ILD_TRANSPARENT;
if ( ( rItem.state & LVIS_SELECTED ) && bListHasFocus )
uFormat |= ILD_FOCUS;
CObjectItem *item =(CObjectItem *)m_cListCtrl.GetItemData(nItem);
if(item==NULL) return;
if(m_bLargeIcon )
{
check.top=check.top+(int)(check.Height()/3.0)-2;
check.left+=6;
check.right=check.left+(int)(check.Width()/3.0);
check.bottom=text.top;
check.DeflateRect(1,1);
///left icon
if(item->m_bCheck )
{
m_rImageListLarge.Draw ( pDC, 1, check.TopLeft(), uFormat );
m_cImageListNormal.Draw ( pDC, 0, icon.TopLeft(), uFormat );
}
else
{
m_rImageListLarge.Draw ( pDC, 0, check.TopLeft(), uFormat );
m_cImageListNormal.Draw ( pDC, 1, icon.TopLeft(), uFormat );
}
}
else
{
check.right=check.left+(int)(check.Width()/4.5);
check.DeflateRect(1,1);
if(item->m_bCheck )
{
m_rImageListSmall.Draw ( pDC, 1, check.TopLeft(), uFormat );
m_cImageListSmall.Draw ( pDC, 0, icon.TopLeft(), uFormat );
}
else
{
m_rImageListSmall.Draw ( pDC, 0, check.TopLeft(), uFormat );
m_cImageListSmall.Draw ( pDC, 1, icon.TopLeft(), uFormat );
}
}
m_cListCtrl.GetItemRect ( nItem, rcItem, LVIR_LABEL );
if ( rItem.state & LVIS_SELECTED )
{
item->m_bSelected=true;
pDC->SetTextColor(RGB(255,0,0));
}
else
{
item->m_bSelected=false;
crBkgnd = GetSysColor ( COLOR_WINDOW );
pDC->SetTextColor ( GetSysColor ( COLOR_BTNTEXT ));
}
pDC->SetBkMode ( TRANSPARENT );
rcText = rcItem;
rcText.left += 3;
rcText.top++;
sText = m_cListCtrl.GetItemText ( nItem, 0 );
pDC->DrawText ( sText, rcText, DT_VCENTER | DT_SINGLELINE );
if ( bListHasFocus && ( rItem.state & LVIS_FOCUSED ))
{
pDC->DrawFocusRect ( rcItem );
}
*pResult = CDRF_SKIPDEFAULT;
sText.ReleaseBuffer(0);
}
}
ListView
的优化
五月,终于要过去了,为了毕业论文的事情已经大概忙了
一个
多月,来来回回学校和单位之间,真的是忙的不可开交,关键是答辩组的老师真
变态
,各种改,各种刁难啊,不过终于在我的努力下过了!好了,不吹牛了,不过那老师真的很烦人。 感觉都不知道写些什么,哎,肚子的存货太少了,只能怪自己这段日子读的书太少了,今后得好好补补。。。。。 那么今天就说下
ListView
的优化吧,由于本人的知识有限,写的都是一些基本的
扩展ToolBarManager、
ListView
和Grid控件以实现气球式的ToolTip
infragistics是全球领先的UI工具和用户体验的专家,Infragistics开发了一系列的炫目的Windows、Web、WPF和Silverlight控件,相信很多人在使用它们。我们现在的项目就在使用Infragistics的Windows Form控件集。虽然这些控件功能强大,也不可能满足你所有的需求,尤其是那些
比较
苛刻的最终用户的需求。比如,我们最近就接收到这样
一个
变态
的需求:让所以...
qml demo分析(text-字体展示)
上一篇文章分析了
一个
小游戏,使用qml编写界面+js进行复杂逻辑控制,算是
一个
比较
完整的qml示例代码了,今天就不那么继续
变态
啦,来看
一个
简单的字体示例程序吧,该示例代码
比较
简单,主要是展示了几个简单的使用场景,下边我将逐个进行分析 1、淡出 如图1所示是
一个
文本淡出并伴随字母间距增大的效果,该组件使用了两个序列动画,
一个
用于将字母间距放大,另
一个
用于改变
文字
透明度 图1 淡出 ...
高德地图周边搜索与搜索提示(三)
应用场景:输入地址信息,以
listview
的方式显示周边信息 (需求也是够
变态
的,都改了n次了,后台不懂总是要我走前面提到的关键字搜索,日了狗了) 思路:edittextTextWatcher侦听,将
文字
转化为经纬度 public void getLatlon(final String name) { GeocodeQuery query = new GeocodeQuery...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章