下拉列表框列表中如何显示象word选择线条宽度一样的线条?
解决方案 »
- 为什么CreateWindow的第十个参数HANDLE hlnstance,可以设置为NULL?
- 求教 typedef定义的一个数组是什么意思
- win32 开发 急急
- 使用CSocket和CWinThread无法解决的ASSERT(pThreadState->m_hSocketWindow != NULL);的两个问题。
- CClientDC的问题
- OpenGl中需要使用glext.h怎么才能获得?
- 请教行程编码压缩方法的思想
- 请教SDK下自己定位控件后不显示怎么解决?<在线,解决马上给分:)>
- VC OPENGL 如何控制模型隐藏与显示
- CStringA 得到的字符串怎么分割
- 大家用什么软件打包的啊。有个很急的问题问一下大哥大姐???
- 如何让自己写的DLL只允许静态链接
2. 设置LBS_OWNERDRAWFIXED属性
3. 重载DrawItem,其中自己画线( 也可以画其他东西,总之,发挥你的想象力就可以了)。
void CColorSelectComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
if(lpDrawItemStruct->CtlType!=ODT_COMBOBOX)
return;
if(lpDrawItemStruct->itemID <0)
return;
COLORREF backColor=::GetSysColor(COLOR_WINDOW);//背景色 //包围矩形
CRect itemRect=lpDrawItemStruct->rcItem;
CDC *pDC=CDC::FromHandle (lpDrawItemStruct->hDC );
//设置颜色区域
CRect colorRect;
colorRect.left=itemRect.left+COLOR_RECT_BORDER;
colorRect.top=itemRect.top+COLOR_RECT_BORDER;
colorRect.right=colorRect.left+COLOR_RECT_WIDTH;
colorRect.bottom=itemRect.bottom - COLOR_RECT_BORDER;
//画出颜色区域
CBrush brush(itemColor);
CBrush *oldbrush=pDC->SelectObject (&brush);
pDC->Rectangle (&colorRect);
pDC->SelectObject (oldbrush);
}