动态创建自绘的CListBox注意事项
2024-09-05 06:16:46
Create(WS_VISIBLE|WS_CHILD|LBS_NOTIFY|LBS_OWNERDRAWFIXED|LBS_HASSTRINGS|LBS_NOINTEGRALHEIGHT ,rcWnd,this,xxx);
如果想要响应ON_LBN_SELCHANGE消息,则一定要加LBS_NOTIFY;
如果想要自绘风格则加LBS_OWNERDRAWFIXED;
如果碰到DrawItem的时候,GetText获取不到正常的字符串的时候,则要加LBS_HASSTRINGS;
如果碰到改变列表框大小的时候,列表框高度不对劲,则要加LBS_NOINTEGRALHEIGHT;
顺便贴出自绘代码段:
void CMyListBox::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
if ((int)lpDIS->itemID < 0)
return; TCHAR ch[64] = {0};
GetText(lpDIS->itemID, ch); CDC* pDC = CDC::FromHandle(lpDIS->hDC);
CRect rFrame = lpDIS->rcItem;
rFrame.DeflateRect(1,1,1,1); // If item has been selected, draw the highlight rectangle using the item's color.
CBrush brush(RGB(255,255,255));
pDC->FillRect(&rFrame, &brush); if ((lpDIS->itemState & ODS_SELECTED))
{
CBrush brush(RGB(51,153,255));
pDC->FillRect(&rFrame, &brush);
pDC->SetTextColor(RGB(20,0,0));
} int nBkMode = pDC->SetBkMode(TRANSPARENT);
UINT nFormat = DT_LEFT | DT_SINGLELINE | DT_VCENTER;
if (GetStyle() & LBS_USETABSTOPS)
nFormat |= DT_EXPANDTABS;
CFont font;
font.CreatePointFont(120, _T("宋体"));
pDC->SelectObject(&font);
// Calculate the rectangle size before drawing the text.
pDC->DrawText(ch,-1, &rFrame, nFormat);
pDC->SetBkMode(nBkMode); DeleteObject(&font);
}
最新文章
- Xamarin.IOS之多视图
- spring aop中的propagation的7种配置的意思
- 设置 Firewalld 防火墙控制对系统的访问
- 习总强调网络安全 ,咱们国产SSL证书必须加快普及速度
- x264宏块及子块划分方式
- Java1.5泛型指南中文版(Java1.5 Generic Tutorial)
- JDBC访问及操作SQLite数据库
- WinSock 异步I/O模型
- hdu 3939(勾股+容斥)
- 【安卓开发】Android系统中Parcelable和Serializable的区别
- 日志切割之Logrotate
- Notes for ";Python in a Nutshell";
- linux 环境统配
- Bootstrap &; Font Awesome 学习笔记
- Python: 调用youtube_dl实现视频下载
- 谷歌AMP和百度MIP是什么鬼?
- uifont 字体详解
- .net 定时启动任务
- LINK : fatal error LNK1104: 无法打开文件“libboost_serialization-vc90-mt-gd-1_62.lib”
- python开发学习-day13(js、jQuery)
热门文章
- 开启和安装Kubernetes k8s 基于Docker For Windows
- Oracle中恢复drop掉的表中的数据
- es内存不够
- MySQL单机优化---SQL优化
- 【题解】Luogu P5328 [ZJOI2019]浙江省选
- Redis Cluster: (error) MOVED
- EgretWing链接微信开发工具调试问题
- ConcurrentDictionary,ConcurrentStack,ConcurrentQueue
- Java操作JSON数据(2)--Gson操作JSON数据
- ROS的安装与使用